C语言指针 直接寻址与间接寻址详解

int a;

int *pa=a;

a=10;//直接寻址

printf("%d",*pa);//间接寻址(指针的解引用)

会显示10,但是为啥能从*pa中取出10这个值?

我把“10”比作一个宝石,a是一个放宝石的盒子,*pa是一张藏宝图

int a;表示 我制作一个盒子的过程

int *pa=a,代表的意思就是我在藏宝图上记录盒子的位置这一过程

a=10就是我把宝石放到盒子里

*pa=10表示我先找到藏宝图,再通过藏宝图记录的盒子的位置找到盒子位置,从而取出宝石。

宝石放在盒子里嘛,找到盒子的位置自然就等于找到了宝石。

 

posted @ 2018-06-05 06:14  三杯咖啡  阅读(1884)  评论(0编辑  收藏  举报