刷题笔记:C/C++工程师能力评估2

来源:互联网 发布:linux服务器配置ipv6 编辑:程序博客网 时间:2024/05/19 21:44

题目:

unsigned char *p1;unsigned long *p2;p1=(unsigned char *)0x801000;p2=(unsigned long *)0x810000;

请问p1+5= 什么?
p2+5= 什么?

A. 801005 810005
B. 801010 810014
C. 801005 810014
D. 801010 810015

答案:C. 801005 810014。
知识点:指针加减操作和进制换算。

解析:指针地址+1会移动一个指针类型大小的单位,比如:char型指针,1次移动1个字符大小,1个字符为1个字节,即每+1移动1个字节。
题目中,p1为char型指针,每+1移动1个字节,+5移动5个字节,16进制表示为5。而p2为long型指针,long大小为4,,+5后移20字节,16进制表示为14。

常用类型大小:
char——1
short——2
int,long,float——4
double——8个

原创粉丝点击