C 和指针_基础篇1
变量的值是存在计算机内存中的,每个内存都会对应一个固定的地址
-内存中的每个位置都有一个独一无二的地址
-每个地址都有可以包含一个值
指针操作基于如下两个操作符:
* 间接操作符
& 取地址操作符
假设现在有如下地址和对应的值:
0x100 | 0x104 | 0x108 | 0x10C |
---|---|---|---|
&a | &a | &c | &d |
12 | 15 | 3.14 | 789 |
为了和变量区分开,我再符号前加了取地址符;
怎么理解这个取地址符:
&a=0x100
简言之,&a 就是取出对应a的地址
那怎么理解间接操作符 *
例如 定义个一个指针
int *a;
如果我们将a 的值打印出来, 则对应的是12;
int main()
{
int a =293;
int *b;
b=&a;
printf("%d\n",a);
printf("%x\n",&a);
printf("%x\n",b);
printf("%d\n",*b);
}
打印出的结果
293
61fe14
61fe14
293
所以 get it
间接取地址符 * 就是将取出对应地址下的值;