博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
变量的本质
阅读量:6292 次
发布时间:2019-06-22

本文共 876 字,大约阅读时间需要 2 分钟。

在C语言中,为我们抽象出了一个概念,叫做变量,从字面意思理解是一种变化的量.

因为我们有了汇编语言的基础,从这个角度理解,可以直接把变量理解成某个内存地址.
从变量里面拿东西,可以理解成是从某个内存地址里面读数据.
往变量里面放东西,可以理解成是往某个内存地址里面写数据.
这便是变量的本质.
有了汇编语言的基础,无论什么概念,我们都比较容易理解,一点即通.
char = byte
short int = word
int =double word


 

变量名的命名规则和函数的命名规则是一样的.
1.只能以字母、数字、下划线组成,且第一个开头的必须是字母或者下划线.
2.区分大小写.
3.不能使用C语言的关键字.
但值得注意的是,因为VS2015的强大,我们可以使用中文来作为变量名和函数名.
如果使用GCC编译器或者使用VC6.0,中文变量名或者函数名就无法编译通过.
int age;
int main() {
__asm {
xor eax, eax
}
age = 5;
}
声明了一个变量,长度为4个字节,并且这个变量不在任何函数的范围之内.
在C语言中,这种独立于任何函数体之外的变量,叫做全局变量.

 


 

全局变量的特点是:

1.在程序编译的时候,就确定了变量的内存地址和长度.
2.如果不重写编译,全局变量的内存地址不变.游戏外挂中的找"基址",其实就是找全局变量.
3.这个程序中所
有的代码,都可以读写全局变量区.

 


 

而局部变量则位于栈中:
1.局部变量是函数内部申请的,如果函数没有被调用.局部变量没有内存空间.
2.局部变量是在内存的栈中分配的,程序执行时才分配.所以局部变量的内存地址不固定.
3.因为局部变量的内存地址不固定.所以只能在函数内部使用,其他函数不能使用.

 


不管是函数名还是变量名以及我们将来要学习到的结构体,指针,类名等,最终都会转换成内存地址.


 

全局变量的默认值是0
局部变量使用的时候,要给一个初值.

 

转载于:https://www.cnblogs.com/xiaodaxiaonao/p/7422605.html

你可能感兴趣的文章
Android 使用 ViewPager+RecyclerView+SmartRefreshLayout 实现顶部图片下拉视差效果
查看>>
Flutter之基础Widget
查看>>
写给0-3岁产品经理的12封信(第08篇)——产品运营能力
查看>>
ArcGIS Engine 符号自动化配置工具实现
查看>>
小程序 · 跳转带参数写法,兼容url的出错
查看>>
flutter error
查看>>
Flask框架从入门到精通之模型数据库配置(十一)
查看>>
10年重新出发
查看>>
2019年-年终总结
查看>>
聊聊elasticsearch的RoutingService
查看>>
让人抓头的Java并发(一) 轻松认识多线程
查看>>
从源码剖析useState的执行过程
查看>>
地包天如何矫正?
查看>>
中间件
查看>>
Android SharedPreferences
查看>>
css面试题
查看>>
Vue组建通信
查看>>
用CSS画一个带阴影的三角形
查看>>
前端Vue:函数式组件
查看>>
程鑫峰:1.26特朗.普力挺美元力挽狂澜,伦敦金行情分析
查看>>