p=(int)malloc(100*sizeof(int));p++;这里p自加1,到底是加了几个字节呢??

2025-05-15 11:59:40
推荐回答(3个)
回答1:

p一个字节也没加。
因为你的p是int型,malloc返回的内容却是你刚才分配的100个整型空间的头部地址,所以p以int型的身份保存了这个地址的数值,那么p++只是给p的数值加1。
不过如果你将p的内容依然当作地址来看的话,那么增加了1个字节,并不是整数应该有的4个字节(sizeof(int),有些编译器或许不同)。如果你想用指针的话,还是应该p=(int *),而不是int

回答2:

p是指针类型,也就是一个int数组,长度一百,p++,指向下一个int数

回答3:

4个字节
p只是单纯的int型指针