C语言-指针与16进制

C语言-指针与16进制

编程文章jaq1232025-06-04 17:00:004A+A-


①规则

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

点击这里复制本文地址 以上内容由jaq123整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

苍茫编程网 © All Rights Reserved.  蜀ICP备2024111239号-21