读书人

求解释程序的结果,该怎么处理

发布时间: 2012-10-20 14:12:47 作者: rapoo

求解释程序的结果
#include<stdio.h>
int main()
{
int *pa=NULL;
int *pb=pa+15;
printf("%x",pb);

return 0;
}


为啥子结果是3C呢,不是很明白,求解答

[解决办法]
int pb = pa + 15;// 此时pb的值为15*4 = 3CH
3c是你自己赋给pb的,然后再输出,不是3c是什么
[解决办法]
int pb = pa + 15;// 此时pb的值为15*4 = 3CH
地址以十六进制表示,pa的地址为0,pb = pa + 15,相当于pb = pa + 15 * sizeof(int),即:加上15个整型字节的长度,所以pb一十六进制表示就为3c了
[解决办法]

探讨
int pb = pa + 15;// 此时pb的值为15*4 = 3CH
地址以十六进制表示,pa的地址为0,pb = pa + 15,相当于pb = pa + 15 * sizeof(int),即:加上15个整型字节的长度,所以pb一十六进制表示就为3c了

[解决办法]
pa = nul就是0
然后 是int型指针,加15就是加上15*4 = 60个字节
那么pb就是0+60 = 60=3c

读书人网 >C语言

热点推荐