两者区别在于所表示的含义和计算结果不同。1、sizeof(a)表示的是数组a在内存中所占用的字节数。当数组a被定义时,编译器会根据数组元素的类型和数量计算出数组a所占用的内存大小,然后使用sizeof运算符可以得到这个大小。2、sizeof(a【0】)表示的是数组a中第一个元素所占用的字节数。在C/C++中...
输出的结果是sizeof(short),即2。 4.数组做sizeof的參数不退化,传递给strlen就退化为指针了。 5.大部分编译程序 在编译的时候就把sizeof计算过了 是类型或是变量的长度这就是sizeof(x)能够用来定义数组维数的原因 char str[20]="0123456789"; int a=strlen(str); //a=10; int b=sizeof(str); //而...
如果结果是2,那么只有一个解释,‘a’是整型常量,是unsigned int,且楼主的编译器中int的宽度为16位2字节,所以是2。
C语言-sizeof()的使用 1.sizeof操作数据 当sizeof(与数据类型(如int,float,char …等)一起使用时,它只返回分配给该数据类型的内存量。 结果为: 2.sizeof操作数组 算数组的长度 3.sizeof(数组名)与sizeof(*数组名) a为含有5个元素的数组,数组名代表元素的首地址,所以sizeof(a)代表整个数组所占的内存空...
举例说明, #define countof(a) (sizeof(a) / sizeof(*(a)))//计算数组内成员个数 再具体一点: a 是一个int型数组,有10个元素,sizeof(a) 就是 a数组整个的存储字节数,10*4=40,这不难理解。 *a相当于a[0], 数组第一个元素,si
反映了数组的长度。假如有一个int数组:inta[10];那么,sizeof(a)得到的就是10*sizeof(int),而...
sizeof是求 字节数的函数。a如果是int,float ,long的就是4个字节。short的就是2个。char的就是1个 double的就是8个,(32位系统)sizeof(int)其实也就是求 int型的变量的字节数。也等于 4;因为sizeof的优先级比除号/的高,所以先算它,后算/ 。最后赋值给n ...
sizeof(&a[0]+1) //&a[0]得到的数组第一个元素的大小,对其加1,就得到了数组中第二个元素的地址,计算的是地址的大小,即4/8。 #include<stdio.h>#include<string.h>intmain(){chara[]={'a','b','c','d'};printf("%u ",strlen(a));printf("%u ",strlen(a+0));//printf("%u ",strlen...
用法区别、意思区别。1、用法区别:asizeof是用于获取某物的大小,在内存中占用的字节数。thesizeof是用于获取某物的大小,所占用的存储空间大小。2、意思区别:asizeof的意思是某物的尺寸,表示实际占用的字节数。thesizeof的意思是某物的大小,表示存储空间的大小,包括对齐和填充。
C语言里就是把字符常量当做了整型处理的.在c中'a'这类的是代表着'a'这类的ACSII的值..而在c++中'a'这类就代表一个字符常量 sizeof 'a'所以在VC++里,为 4 不为2 的原因.你注意看我第一句话..在c中这个字符常量是被当做一个整形来处理的 ...