C语言-指针与16进制(c语言 指针的指针 用法详解)


①规则

16进制

1、2、3、4、5、6、7、8、9、

10用A表示、11用B表示、12用C表示、13用D表示、14用E表达、15用F表达、

16进位。

②例子

#include< studio.h>

main()

{

int a[10]={1,2,3,4,5,6,7,8,9,0},*p=a;

p=a;

/*p表示a[0]的地址194,而不是a[0]的值1*/

printf("%x\n",p);

/*%x表示16进制*/

printf("%x\n",p+9);

}

若1个int变量占2字节, 输出p=194,

则p+9=1A6

~

③计算过程

p为指向数组a首地址的指针,

p+9为指针向右移动9个存储空间,

每个存储空间为1个int变量(2字节),

即指针向右移动9×2=18个字节,

18转化为16进制,16+2转化为12,

9个存储空间→18个字节→12(16进制)

p=194

p+9=194+12=1(10)6=1A6

注意此处

p+9为指针移动9个物理地址,

而不是p+9=194+9=19(13)=19D

原文链接:,转发请注明来源!