sizeof 不是函数,而是被当作关键字使用。
举例:int i=0;
1. sizeof (int) 2.sizeof (i) 3.sizeof i
4 4 4
函数后必须要有一个();1. 2. 能编译通过,同时3.也能编译通过且结果为4,那也就证明了它并不是一个函数。
sizeof 当作运算符使用
int a[100],a1,a2,a3,a4,a5,a6;
int *p=NULL;
a1=sizeof(p) ; // 4,因为p是一个指向NULL的指针。
a2=sizeof(*p) ; // 4, 因为*p是指针指向的对象.
a3=sizeof(a) ; // 400,此时求得的应是整个数组a的空间大小。
a4=sizeof(a[100]) ; //4, 为a[100]是指向这个数组首元素的地址的大小。
a5=sizeof(&a) ; // 4, 取数组首元素的地址
a6 =sizeof(&a[0]) ; // 4 ,取零号下标元素的地址 int * 4;
int siae=func (a); //数组名在函数调用中实参传形参退化成指针int * 4;
int size =sizeof((int) (*p)) ; //*p3 强制转换成int类型 4;
char *p sizeof p //p 前面是什么就是什么类型 ,4(指针类型)
char *p sizeof *p //*p 前面是char 型 , 1.
sizeof