malloc是向系统申请内存空间的函数,返回值是void *很明显,p1一定是定义为int *p1;的,所以强制malloc返回的指针更改类型为int *malloc的参数说明要申请多少字节数据,这里要申请一个连续5个整型的数据区,所以用5乘以每个int占用的字节数,即5*sizeof(int) 追问 5后面的*是乘的意思?我还以为是指针呢!可是int不是占4个字节吗?那直接用20就可以了啊,为什么还要用5*sizeof(int)这么麻烦? 追答 写5*sizeof(int)要比写5*4或直接写20在程序的可移植方面要好,当你的代码如果有一天需要搬到别的CPU(比如ARM)上时,CPU不一定都是32位的,那时sizeof(int)就可能不是等于4了。 追问 谢啦~(^O^)