本文目录一览:
C语言中sizeof是什么意思
sizeof是C语言中保留关键字,也可以认为是一种运算符,单目运算符。常见的使用方式:
int a=10;
int arr=[1,2,3];
char str[]="hello";
int len_a = sizeof(a);
int len_arr = sizeof(arr);
int len_str = sizeof(str)
printf("len_a=%d,len_arr=%d,len_str=%d\n",len_a,len_arr,len_str)
结果是:len_a=4,len_arr=12,len_str=6
扩展资料:
在 Pascal 语言中,sizeof() 是一种内存容量度量函数,功能是返回一个变量或者类型的大小(以字节为单位)。
在 C 语言中,sizeof() 是一个判断数据类型或者表达式长度的运算符。
在Pascal 语言与C语言中,对 sizeof() 的处理都是在编译阶段进行。
sizeof是C/C++中的一个操作符(operator),简单的说其作用就是返回一个对象或者类型所占的内存字节数。
MSDN上的解释为:
The sizeof keyword gives the amount of storage, in bytes, associated with a variable or a type(including aggregate types). This keyword returns a value of type size_t.
参考资料:
百度百科-sizeof
c语言sizeof(数组名)结果为0
空数组做法本身就是错的 .
定义空数组,再向里面塞值, 这个就是越界操作了.
所以 这个思路就是不对的. 定义数组的时候必须开辟足够大空间.
C语言sizeof("\0") strlen("\0")
sizeof("\0")=2
sizeof是编译器在编译时计算,计算括号中内容的大小,注意,这和地址没关系,因为这发生在编译期
那么"\0"是多大呢?\0是1个字符,再加上一个字符结束符(也是\0),共2个。
如果有疑问的话,自己试一下sizeof("a"),sizeof("\0a")等就明白了,从这里可以发现,字符串中间是可以有\0的。
strlen("\0")=0
这个只要知道strlen是怎么计算字符串长度的就可以很容易得出答案了,该"\0"大小为2,且两个都是\0,遇到第一个\0就结束了,所以是0