在C语言中,为我们抽象出了一个概念,叫做变量,从字面意思理解是一种变化的量.因为我们有了汇编语言的基础,从这个角度理解,可以直接把变量理解成某个内存地址.从变量里面拿东西,可以理解成是从某个内存地址里面读数据.往变量里面放东西,可以理解成是往某个内存地址里面写数据.这便是变量的本质.有了汇编语言的基础,无论什么概念,我们都比较容易理解,一点即通.char = byteshort int = wordint =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局部变量使用的时候,要给一个初值.