文章目录
一、变量修改
1、直接修改变量
2、通过内存地址间接修改变量
3、通过指针间接修改变量
一、变量修改
访问 变量 , 就是 访问 内存空间 ;
访问 指的是 读写 内存 ;
修改变量的方式 :
直接修改 : 通过 变量 , 可以 直接 修改内存 ,
间接修改 : 通过取地址符 , 拿到变量所在内存的 地址编号 , 通过地址编号修改内存 ;
1、直接修改变量
#include <stdio.h> int main() { // 定义变量 a int a = 0; // 直接修改内存 // 通过 内存标号 修改内存 a = 1; // 打印 a 变量值 , 以及 a 的地址 // a=1, &a=6422220 // a 是内存地址 6422220 位置的 4 字节内存标号 printf("a=%d, &a=%d\n", a, &a); return 0; }
执行结果 :
a=1, &a=6422220
2、通过内存地址间接修改变量
#include <stdio.h> int main() { // 定义变量 a int a = 0; // 直接修改 : // 直接修改内存, 通过 内存标号 修改内存 a = 1; // 打印 a 变量值 , 以及 a 的地址 // a=1, &a=6422220 // a 是内存地址 6422220 位置的 4 字节内存标号 printf("a=%d, &a=%d\n", a, &a); // 间接修改 : // 获取 变量 a 的地址 , // 直接修改该地址对应的内存空间中的数据 *( &a ) = 2; printf("a=%d, &a=%d\n", a, &a); return 0; }
执行结果 :
a=1, &a=6422216 a=2, &a=6422216
3、通过指针间接修改变量
#include <stdio.h> int main() { // 定义变量 a int a = 0; // 直接修改 : // 直接修改内存, 通过 内存标号 修改内存 a = 1; // 打印 a 变量值 , 以及 a 的地址 // a=1, &a=6422220 // a 是内存地址 6422220 位置的 4 字节内存标号 printf("a=%d, &a=%d\n", a, &a); // 间接修改 : 通过内存地址 // 获取 变量 a 的地址 , // 直接修改该地址对应的内存空间中的数据 *( &a ) = 2; printf("a=%d, &a=%d\n", a, &a); // 间接修改2 : 通过指针 // 将变量 a 的内存地址赋值给 p int *p; p = &a; // 通过修改 p 指针指向的内存 , 修改变量 a 的值 *p = 3; printf("a=%d, &a=%d\n", a, &a); return 0; }
执行结果 :
a=1, &a=6422216 a=2, &a=6422216 a=3, &a=6422216