1.表示计算int型所占字节数,然后再乘以p。
如果是这种形式的话:sizeof(int *p),表示计算指向整型的指针变量p所占的字节数。2.int *p=NULL; 指针地址用 DWORD, sizeof(p) 是4。sizeof(*p) 是值, 等于 sizeof(int) ,可能 是2也可能是 4。 (DWORD 就是 Double Word, 每个word为2个字节的长度,DWORD 双字即为4个字节,每个字节是8位,共32位。) 定义指针,一般先给初始化,用NULL来初始化它,避免野指针。你这里说的int *p,这个p里面是随机值,而int *p=NULL,这个p是有值的,为NULL.这其实对程序也没有啥贡献,在后面你也可以随时让这个p指向别的地址。定义指针,顺便将它初始化为NULL,这样做编程更规范。 int *p;和int *p=NULL有什么区别啊? int *p只是定义整形指针。 int *p=NULL是定义指针p并指向null,和int *p;p=NULL;一样 3.int a[100];//声明了一个有100个int类型元素的数组, 数组下标从0~99, 所以a是数组名, 代表数组的首地址, 也就是&a[0] sizeof (a) //返回数组a在内存中所占的空间大小,以字节为单位, 也就是sizeof(a) = sizeof(int) * 100 = 4 * 100 = 400bytes//a