int *P=NULL;
sizeof(p)的值是多少了
sizeof(*p)又是多少;;
int a[100];
sizeof(a)的值是多少了
sizeof(a[100])的值是多少了
sizeof(&a)的值是多少了
sizeof(&a[0])的值是多少了
最近刀割一直想把这个sizeof彻底搞懂
这些是跟系统及编译器有关的量。例如sizeof(int) 在DOS下用TC2.0编译就是2,在32位XP下用VC6或VC2003编译就是4; 在32位机下,sizeof(int)*p是 4乘以p sizeof(p) = sizeof(int*) = 4,是说指针占用几个字节 sizeof(*p) = sizeof(int) = 4,是说整型数占用几个字节
奖励 吻 还是花?
sizeof表示的是变量占用字的节数。 a本身是个地址,用int存放,占用4个字节。 int就是4,a[100]一共是100个int变量,就是400. &a也是个地址值(存放a的地址的空间内存的地址),一个地址用int存放也是4 &a[0]也是个地址,占用4
楼上讲的很不错啊,厉害厉害
NULL表示的只是这个地址为空而已,这个指针变量本身还是要占内存的,32位环境下,指针所占的内存都是4个字节
sizeof只是用来取得括号内量占用的空间的,你不了解的是括号内东西代表什么而已
int *P=NULL; 这是在定义一个空指针,可以理解为(int *)类型的一个变量,这个变量里存的是一个地址,指向另一个地方
sizeof(p)的值是多少了 上一行说了,里面存的是一个地址,32位机一个地址大小事4
sizeof(*p)又是多少;; *p意思指这个变量里存的地址指向的那个对应内存空间,这个时候这个指针指向的内容是int类型的,座椅sizeof大小事int大小
要是
int b【100】
void fun (int b【100】)
{
sizeof(b);
}
是不是也是400啊