关于指针修改变量的一点点理解如下:
#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.