编译器编译的时候就会记住 array是一个 int类型的数组,长度为4,所以sizeof的时候会直接将这个结果计算...
”从结果可以看到,sizeof(p)其实计算的是指针变量p的类型的大小。指针p的类型是指向整数类型的指针,因此其大小为4“ 此处做如下更正: ”从结果可以看到,sizeof(p)其实计算的是指针变量p的大小。在32位系统上,不管指针p指向的是整型数据,还是字符型数据,short型数据,long型数据等,指针p本身所占的内存字节数均为...
int a, b, d, e, f, g,h; a = sizeof(*p);//指针类型。 a=1; b = sizeof(p);//sizeof求任何指针都是4个字节。b=4; d = sizeof(arr);//数组元素所占用空间;d=10; e = sizeof(arr[10]);//第10个元素的空间大小。e=1; f = sizeof(&arr);//sizeof把它当做地址来算的,4个字...
sizeof()的参数为指针和数组 C++或C语言中,都可以使用sizeof()运算符来计算数组的字节大小,除此之外,在C++和C语言中,都可以使用一个指向数组第一个元素的内存地址的指针来引用数组,因此,如果要计算数组的字节大小,或长度,传递数组本身或传递指向数组的指针给sizeof()运算符似乎都是可以的,实际上则不然,二者有...
但不要以此以为数组和指针是相同的。 只有在两种场合下,数组名不用指针常量表示,其他都是一个常量指针,也称为数组的 “退化” 。两种场合为: 1: sizeof(b) 2: &b 第一种举例: 1intb[4] = {0};2printf("%d\n",sizeof(b)); 输出结果为16,是整个数组的长度,如果b是常量指针,结果应该是指针地址的...
而如果对指针p求sizeof,它用于等于运行机器上的指针大小,比如在32位机器上,这个值就是4字节;而我的测试机器是64位机器,所以其值为8字节。 4 总结 sizeof求数组和指针是两个不同的操作,对数组它是求数组的整体内存大小,而对指针,其值用于等于机器的字长(即不同的机器有不同的测试结果)。
sizeof(数组名)和sizeof(指针) 在做这道题时: 32位环境下,int *p=new int[10];请问sizeof(p)的值为() A、4 B、10 C、40 D、8 我以为正确答案为C,int类型为32位,占四个字节,10个自然就是40了,结果正确答案为A,只是指针p占的空间。
sizeof指针和数组 int a[10] = {0 , 1 , 2, 3 , 4 , 5, 6, 7 , 8 , 9}; int *b = a; int (*d)[10]= &a; int c; //sizeof(数组名):返回数组所有元素占有的内存空间字节数。即计算整个数组的大小 qDebug()<<"---a="<<sizeof (a); //4 * 10 = 40 //sizeof...
sizeof函数并不区分数组名与指针,它只是简单告诉你操作数的大小。例如,给数组时,它告诉你数组的大小;给指针时,则告诉你指针的大小。关键在于void printSize(int a[10])中的a,其实它的类型是被调整为指向int的指针,而非数组。当声明参数为「某某类型的数组」时,其会被调整为「某某类型的指针」...
sizeof(pStu->name),首先pStru是指向结构体stu的指针,如果要计算sizeof(pStru)的值,在 64 位机器上,结果应该为 8,而代码中计算的是sizeof(pStu->name),即计算的是成员name的 size,因此,sizeof(pStu->name)的值为 100;而pName是指向name的指针,因此在 64 位机器上,sizeof(pName)=8。