一个关于数据类型的笔试题
unsigned char *p1;unsigned long *p2;
p1=(unsigned char *)0x801000;
p2=(unsigned long *)0x810000;
请问p1+5= ;
p2+5= ;
上面的是一道笔试题。
请问: p1=(unsigned char *)0x801000;p2=(unsigned long *)0x810000;
这两句什么意思?我怎么没见过?
这道题什么意思呢?
谢谢!
----------------解决方案--------------------------------------------------------
unsigned char *p2;
p2=(unsigned char *)0x810000;
这里p1+5,指的是指针移动5个sizeof(unsigned long)长度。
所以p1+5 = 0x801014 (如果unsigned long 是4个字节的话)
----------------解决方案--------------------------------------------------------
意思是将16进制数强制类型转换为无符号字符指针
这样p1所指的地址就是0x801000
----------------解决方案--------------------------------------------------------