内存分布
内存地址 | 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,他两是一块内存;