C语言中sizeof、strlen函数的使用

一、测试环境

  Win10 + Visual Studio 2017

二、测试代码

#include "pch.h"
#include <iostream>
#include <string>
#include <vector>

using namespace std;

int main(void) {
    char a[10] = "hello";
    char b[10] = { ‘h‘,‘e‘,‘l‘,‘l‘,‘o‘};
    char c[] = "hello";
    const char *d = "hello";
    cout << "sizeof(a) = " << sizeof a << ‘ ‘ << "strlen(a) = " << strlen(a) <<  ‘\n‘ <<endl;
    cout << "sizeof(b) = " << sizeof b << ‘ ‘ << "strlen(b) = " << strlen(b) << ‘\n‘ << endl;
    cout << "sizeof(c) = " << sizeof c << ‘ ‘ << "strlen(c) = " << strlen(c) << ‘\n‘ << endl;
    cout << "sizeof(d) = " << sizeof d << ‘ ‘ << "strlen(d) = " << strlen(d) << ‘\n‘ << endl;
    return 0;
}

三、测试结果 

  结果1(x86):

sizeof(a) = 10 strlen(a) = 5

sizeof(b) = 10 strlen(b) = 5

sizeof(c) = 6 strlen(c) = 5

sizeof(d) = 4 strlen(d) = 5

  结果2(x64):

sizeof(a) = 10 strlen(a) = 5

sizeof(b) = 10 strlen(b) = 5

sizeof(c) = 6 strlen(c) = 5

sizeof(d) = 8 strlen(d) = 5

四、测试结果分析

  

图 1 变量a的内容

图 2 变量b的内容

图 3 变量c的内容

图4 变量d内容

  1、sizeof函数的使用

  sizeof 运算符可用于获取类、结构、共用体和其他用户自定义数据类型的大小:

  sizeof (data type)

  data type:要计算大小的数据类型,包括类、结构、共用体和其他用户自定义数据类型

  2、strlen函数的使用

原文地址:https://www.cnblogs.com/wyt123/p/10696713.html

时间: 2024-10-29 03:12:24

C语言中sizeof、strlen函数的使用的相关文章

C语言中sizeof与strlen区别

C语言中sizeof 与strlen 区别 一.本质区别 sizeof 和strlen 有本质上的区别.sizeof 是C 语言的一种单目运算符,如++.--等,并不是函数,sizeof 的优先级为2 级,比/.% 等3 级运算符优先级高,sizeof 以字节的形式给出操作数的存储空间的大小.而 strlen 是一个函数,是由 C 语言 的标准库提供的.strlen 计算的  是字符串的长度. 二.使用区别 1.sizeof sizeof 的操作数可以是数据类型.函数.变量,表达式使用方式为:

C语言中的system函数参数详解

http://blog.csdn.net/pipisorry/article/details/33024727 函数名: system 功   能: 发出一个DOS命令 用   法: int system(char *command); system函数已经被收录在标准c库中,可以直接调用 system()函数用于向操作系统传递控制台命令行,以WINDOWS系统为例,通过system()函数执行命令和在DOS窗口中执行命令的效果是一样的,所以只要在运行窗口中可以使用的命令都可以用SYSTEM()

c语言中的rewind函数,Win CE 不支持,可用fseek函数替换

FILE *read = fopen(cXmlFile,"rb"); if (read) { fseek(read, 0L, SEEK_END); int len = ftell(read); // c语言中的rewind函数就是把文件指针从你现在读取的位置,重新指向文件开头 // Win CE 不支持该函数,可用fseek函数替换 // rewind(read); fseek(read,0L,SEEK_SET); …… …… }

C语言中的system函数參数具体解释

http://blog.csdn.net/pipisorry/article/details/33024727 函数名: system 功   能: 发出一个DOS命令 用   法: int system(char *command); system函数已经被收录在标准c库中,能够直接调用 system()函数用于向操作系统传递控制台命令行,以WINDOWS系统为例,通过system()函数运行命令和在DOS窗体中运行命令的效果是一样的,所以仅仅要在运行窗体中能够使用的命令都能够用SYSTEM(

C语言中sizeof与strlen 的区别

sizeof与strlen是有着本质的区别,sizeof是求数据类型所占的空间大小,而strlen是求字符串的长度,字符串以/0结尾.总的来说sizeof把'\0'也给数上了,而strlen遇到'\0'就停止计数了.区别如下:(1) sizeof是一个C语言中的一个单目运算符,而strlen是一个函数,用来计算字符串的长度.(2)sizeof求的是数据类型所占空间的大小,而strlen是求字符串的长度实例1:printf("char=%d/n",sizeof(char)); //1pr

C语言中sizeof与strlen的区别

1.sizeof sizeof为编译时期被替换,不会等到程序运行再来判断,所以sizeof返回的是数组的总字节数 1 #include<stdio.h> 2 3 int main() 4 { 5 char a[10]={'a','b'}; 6 7 printf("%d\n",sizeof(a));//10 8 } 2.strlen函数包含在string.h头文件中,该函数返回的是数组的长度,数组中有几个元素就返回几 1 #include<stdio.h> 2 #

c语言中的malloc函数

少壮不努力,大一的时候c语言学得不扎实,最近学数据结构的时候看到c语言中malloc函数都不知道了,这里记录一下,避免以后再忘. malloc的全称是memory allocation,中文叫动态内存分配,用于申请一块连续的指定大小的内存块区域以void*类型返回分配的内存区域地址,当无法知道内存具体位置的时候,想要绑定真正的内存空间,就需要用到动态的分配内存,且分配的大小就是程序要求的大小. 函数:void *malloc(int size); malloc 向系统申请分配指定size个字节的

C语言中sizeof的用法

今天同学问我sizeof可不可以计算结构体的大小,我竟然忘了C语言还有sizeof这个函数,我是多久没有写程序了啊!!!惭愧,上研究生后写嵌入式方面的程序就特别少了,看来以后还要经常来练练手才行.现在转载一篇看到的sizeof用法的文章,与大家分享(第一篇技术类的文章竟然是转载的,惭愧). #include "stdio.h" #include "string.h" #include "stdlib.h" int main() { short i

C语言中的memset函数和数组指针

代码: 1 #include <iostream> 2 #include <cstring> 3 4 using namespace std; 5 6 int main(){ 7 int a[5] = {1}; 8 memset(a,5,sizeof(a)); 9 cout<<a[0]<<" "<<a[1]<<endl; 10 cout<<a<<" "<<a+