自我感觉有点错误,这篇文章勿看。大神的话就看看吧,帮我点评点评哪里错了。
内存只不过是一个存放数据的空间,你可以想象成一个大的旅馆里面,有很多小房间,每个小房间里都可以放一些数据,电脑就是你的工人,有一天你要存入一些数据,你说“int a = 1”,工人就找了一个空的房间,把东西放进去,并给那个房间取了个别名a,为什么叫别名为a,因为那个房间号很长很长,有10几位数那么长,所以给它一个简单易记得名字。问题来了,如果你兴趣来潮的想要知道那个房间号呢?&a工人就能帮你找到。
1 int main() 2 { 3 int a=39; 4 printf(“%d ”,a); //别名 5 printf(“%d ”,&a); //房间号 6 }
快点试试吧,看看第二句输出了什么。
有一个人叫a,另外一个人叫pa,a是城里人,pa是原始人,a住在一个叫a的房间里,里面放着生活用品‘10’,pa住进来了(pa = &a),他说这个a房间也属于我,你叫这个房间a我不管,我就叫他pa,现在起这个房间有两个名字了。pa不认识‘10’,pa想把‘10’换了,又不可能说:“我要把那个10换成20(10=20)X”,所以他只能这么说“我要把这个房间里的东西换成20(*pa = 20)√”
1 void main() 2 { 3 int *pa; //char也行 4 int a = 10; 5 pa = &a; 6 *pa = 20; 7 printf("%d ",a); 8 }
能看出a最后输出的是什么吗?
不要复制张贴打一遍,或许你就容易懂了。
也可以这样写
1 void main() 2 { 3 int a = 10; 4 int *pa = &a; 5 int *pa = 20; 6 printf("%d ",a); 7 }
指向指针的指针
short int **pii=30;//也可以简写成short **pii=30;
short int和int等一样,是一种内部数据类型,用于表示有符号整数。不过short int占用两个字节,int占用4个字节。
不对之处请点出
持续更新中。