• 变量的本质


    在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
    局部变量使用的时候,要给一个初值.

  • 相关阅读:
    Oracle 11g alert log 新增消息 opiodr aborting process unknown ospid (1951) as a result of ORA28 说明
    Oracle 11g alert log 新增消息 opiodr aborting process unknown ospid (1951) as a result of ORA28 说明
    Oracle RAC 第二节点 root.sh 报错 Timed out waiting for the CRS stack to start
    tlq tonglink/q 常用管理方法
    linux分区
    Tuxedo中间件 配置维护记录
    linux后台执行
    tuxedo 常见问题总结
    linux netstat nr route
    sybase 性能监控及调优(转)
  • 原文地址:https://www.cnblogs.com/xiaodaxiaonao/p/7422605.html
Copyright © 2020-2023  润新知