首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

求个解释,程序运作结果,嵌入式

2012-09-06 
求个解释,程序运行结果,嵌入式#includeiostream#includestringusing namespace stdint main(){int *p

求个解释,程序运行结果,嵌入式

#include<iostream>
#include<string>
using namespace std;
int main()
{
int *pa=NULL;
int *pb=pa+15;
printf("%x",pb);
return 0;
}
为什么是3C

[解决办法]
哈哈,
NULL可以看成是0x00000000,pb=pa+15的意思就是从0x00000000向后偏移15个4字节地址,
0x0000->0x0004->0x0008->0x000C->0x0010->0x0014->0x0018->0x001C->0x0020->0x0024->0x0028->0x002C->0x0030->0x0034->0x0038->0x003C

所以结构就是3C啊,不过千万不要对3C地址进行操作,因为你不知道3C里面存了什么东西。
GOOD LUCK
[解决办法]

探讨
#include<iostream>
#include<string>
using namespace std;
int main()
{
int *pa=NULL;
int *pb=pa+15;
printf("%x",pb);
return 0;
}
为什么是3C

[解决办法]
就是简单的指针加减:
char *pc = NULL; /* pc = 0 */
pc + 15 = 15
short *ps = NULL;
ps + 15 = 0 + 15 * 2 = 30
int *pi = NULL;
pi + 15 = 0 + 15 * 4 = 60 = 0x3C

热点排行