int a;int *p=a;sizeof(p)和sizeof(*p)分别表示什么意思
在数组中有一种用法用来求数组的元素个数
int a[10];int b;
b=sizeof(a)/sizeof(*a)这个怎么解释,主要是书上说sizeof()括号里面接指针表示指针自身所具有的长度,可是这里sizeof(a)却表示正葛数组的长度,是特别针对数组的特殊用法吗
在C/C++中,sizeof是操作符而不是函数,所以那对()不是必须的,在没有歧意时可以不写。sizeof操作符用来检测系统为跟在后面的变量、类型符分配了多少个字节。下面的代码可帮助理解:
//#include "stdafx.h"//If the vc++6.0, with this line.我问的不是这个,我问的是sizeof(p)和sizeof(*p)表示什么,在数组中int a[10];a是这个数组的首地址,那sizeof(a)这里的a是个地址而(*a)是数组第一个元素:这么说来size函数的参数可以是地址也可以是左值对象,,p是指针,*p是指向a的指针,为吗sizeof(a)的参数是个地址求得的还是地址指向的数组的存储区域大小,这是sizeof函数在数组中的特别应用吗
我大概理解啦,在数组中,int a[10];中虽然可以用a来表示这个数组的首地址,但是实际上并不存在a这个指针量,所以sizeof(a)如果用来表示一个指针的长度的话,实际没有a这个指针量,所以C++用sizeof(a)来表示整个数组的长度,而对于普通量int a,*b=&a;其中sizeof(a)表示该量的长度,sizeof(b)表示该指针的长度,对于上面的数组int a[10];int *p=a;sizeof(a)表示数组的长度sizeof(p)sizeof(p)则表示该指针的长度,我说的对吗
本回答被提问者采纳