指针理解

Posted 一半清醒一半醉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了指针理解相关的知识,希望对你有一定的参考价值。

内存分布
内存地址
1x01
1x02
1x03
1x04
1x05
变量
5
 
&a(1x01)
 
 
 
定义一个变量:
int a; 在内存上开辟了一块地方,“a”是他的名字,他在内存上的编号是1x01;
 
给 a 赋值: 
a =  5; 在内存编号为1x01 的地方存储了 “5“,如上图;
 
定义一个指针:
int *p; 在内存上开辟了一块地方,“p” 为他的名字,他在内存上的编号是1x03;
 
给p赋值:
p = &a;p的内存存储的是a的内存地址;
 
下图详细的介绍了指针的原理:
技术分享
 
几个变量的值:
a    :5
&a  :1x01
p    :1x01
&p  :1x03
*p   :5
 
例题:
char  a,*pa
a=10
pa=&a
*pa=20
printf( “%d”, a)     结果是: 20,其实 *p 就是a,他两是一块内存;
 
 

以上是关于指针理解的主要内容,如果未能解决你的问题,请参考以下文章

c语言中的指针应该怎么理解?

深入理解C语言的指针

对C指针的理解

深入理解指针与数组

理解常量指针与指针常量?

06深入理解C指针之---指针类型和长度