①规则
16进制
1、2、3、4、5、6、7、8、9、
10用A表示、11用B表示、12用C表示、13用D表示、14用E表达、15用F表达、
16进位。
~
②例子
#includestudio.h
main()
{
inta[10]={1,2,3,4,5,6,7,8,9,0},*p=a;
p=a;
/*p表示a[0]的地址,而不是a[0]的值1*/
printf("%x\n",p);
/*%x表示16进制*/
printf("%x\n",p+9);
}
若1个int变量占2字节,输出p=,
则p+9=1A6
~
③计算过程
p为指向数组a首地址的指针,
p+9为指针向右移动9个存储空间,
每个存储空间为1个int变量(2字节),
即指针向右移动9×2=18个字节,
18转化为16进制,16+2转化为12,
即
9个存储空间18个字节12(16进制)
即
p=
p+9=+12=1(10)6=1A6
~
注意此处
p+9为指针移动9个物理地址,
而不是p+9=+9=19(13)=19D