您的位置:

sizeof在c语言中算0,sizeof函数c++语言

本文目录一览:

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