【C 语言】变量本质 ( 变量修改 | 直接修改变量 | 通过内存地址间接修改变量 | 通过指针间接修改变量 )
文章目录
- 一、变量修改
- 1、直接修改变量
- 2、通过内存地址间接修改变量
- 3、通过指针间接修改变量
一、变量修改
访问 变量 , 就是 访问 内存空间 ;
访问 指的是 读写 内存 ;
修改变量的方式 :
- 直接修改 : 通过 变量 , 可以 直接 修改内存 ,
- 间接修改 : 通过取地址符 , 拿到变量所在内存的 地址编号 , 通过地址编号修改内存 ;
1、直接修改变量
#include <stdio.h>int main()
{// 定义变量 aint 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()
{// 定义变量 aint 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()
{// 定义变量 aint 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 的内存地址赋值给 pint *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
【C 语言】变量本质 ( 变量修改 | 直接修改变量 | 通过内存地址间接修改变量 | 通过指针间接修改变量 )相关推荐
- python查看变量内存地址的内置函数是_查看变量内存地址的Python内置函数是____...
查看变量内存地址的Python内置函数是____ 答:id() 产妇乳汁分泌主要依赖于 答:哺乳时吸吮刺激 下列选项中,属于"路径面板"中的工具按钮的是 答:用前景色填充路径 用画 ...
- 【C 语言】字符串模型 ( strstr-while 模型 | 抽象函数模型 | 业务子函数接口定义要点 | 形参指针间接赋值 | 返回值状态 | 形参指针处理 | 形参指针判空 | 形参返回值 )
文章目录 前言 一.业务子函数接口定义要点 二.完整代码示例 前言 字符串开发模型 : strstr-while/do-while 模型 : 在 字符串 中 查找 子串特征 ; 两头堵模型 : 两个指 ...
- linux c语言变量地址类型,C语言基础知识:访问内存地址的方法
汇编语言寄存器间接寻址方法 #define GPJ0CON0xE0200240 ldr r0, =GPJ0CON //把地址值赋给寄存器r0,从后面的=可以看出用的是ldr伪指令,因为需要编译器来判断 ...
- 【C 语言】变量本质 ( 变量概念 | 变量本质 - 内存空间别名 | 变量存储位置 - 代码区 | 变量三要素 )
文章目录 一.变量概念 二.变量本质 1.变量本质 - 内存别名 2.变量存储位置 - 代码区 3.变量三要素 一.变量概念 变量概念 : 变量 是 既能读 , 又能写 的 内存对象 ; 与 变量 相 ...
- C语言day1(数据类型、变量本质)
1.数据类型的用途及本质 数据类型的本质:固定大小内存块的别名 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include &l ...
- Go 指针类与变量的*(星号)与(取址符)
指针类型 golang中,指针是一种类型,指向变量所在的内存单元(不是内存地址). 申明: 在变量名前加上星号字符,比如 *age ,指向变量age所在的内存单元 &(取址符): 对变量取址 ...
- 【C语言进阶深度学习记录】三十七 C/C++中造成程序内存错误的原因(野指针)
什么是野指针? 指针变量存的地址是一块非法内存地址.进而形成野指针.但是需要注意一点,野指针不是NULL指针. 文章目录 1 野指针的概念 1.1 野指针代码案例初探 2 如何避免野指针 2.1 野指 ...
- 【C 语言】一级指针 易犯错误 模型 ( 判定指针合法性 | 数组越界 | 不断修改指针变量值 | 函数中将栈内存数组返回 | 函数间接赋值形参操作 | 指针取值与自增操作 )
文章目录 一.判定指针合法性 二.数组越界 三.不断修改指针变量值 四.函数中将栈内存数组返回 五.函数间接赋值形参操作 六.指针取值与自增操作 一.判定指针合法性 判定指针合法性时 , 必须进行如下 ...
- Android For JNI(二)——C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器
Android For JNI(二)--C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器 当我们把Hello World写完之后,我们就可以迈入C的大门了,今天就来讲讲基本的一些数据类型 ...
最新文章
- 说实话你现在有多少存款?清华北大毕业生晒出了自己的收入
- 深度学习的“瓶颈”与“遛狗”定理
- android 电视安装apk文件损坏,android - 无法在Android电视盒上安装APK - 堆栈内存溢出...
- 济南女子学院计算机科学与技术,山东女子学院计算机科学与技术专业2016年在山东理科高考录取最低分数线...
- UI设计师需要熟记的45个快捷键Windows、Mac
- nodejs 下载最新版本
- 基于matlab直方图均衡,matlab 直方图均衡实验报告.pdf
- 设计心理学-以用户为中心的设计
- PageHelper.startPage 分页的坑
- 学校计算机实训室座次安排,班级座位调整流程设计
- Canvas 指纹图片改成红色
- 二维泊松方程求解--点迭代法
- CCF201809-3 元素选择器
- 工业路由器的端口映射方法 NAT/DMZ/UPNP
- 调查显示80后离职率最高 薪水低为辞职第一理由
- UVA:1600 巡逻机器人
- 一个程序员老总的年终总结2010版
- 宽依赖和窄依赖_【Spark】SparkCore解析(一):宽依赖和窄依赖
- SQL掌握:添加、修改、删除、查询4个句式
- vue将json格式的字符串格式化后输出到web界面上