关于指针修改变量的一点点理解如下:
#include <stdio.h>int main() {int a = 1;int const b = 2;int *p_int = &a;printf("a = %d\n", *p_int);p_int = (int *)&b;*p_int = 3;printf("b = %d\n", b);return 0;}
指针理解:
- 定义指针,也就是要指针通过哪个地址(去修改目标)就是相当于要通过的哪家中介,
int p_int = &a;
这里,int 是指针的类型,p_int 是指针的表达形式,=&a; 就是 要通过a这个地址,(相当于中介)去修改 目标
- p_int = (int *)&b;
这里,p_int 就是指针 int 是 指针类型为 int 的值,&b 是指针要修改的目标地址,整句意思就是这个P-int指针要将int这个值 装到 &b这个地址里面去,
- *p_int = 3;
这里,p_int就是那个指针,现在有了中介,有了目标,就要确定一个值,通过中介传到目标地址里面去,这里*p_int=3就是p_int这个指针的数据为 3 要把 3 通过地址 &a 传到地址 &b 里面去放着。
所以结果 b = 3.
