• C和指针 第三章--数据


    简要概述:

      《C和指针》第三章对数据进行了描述。

      其中主要讲解了---变量的三个属性:作用域、链接属性和存储类型。

      这三个属性决定了该变量在“什么地方可以使用”以及“该变量的值能够保持多久”。

    总结作用域:

    1、文件作用域、代码块作用域、原型作用域和函数作用域

      文件作用域:在代码块之外声明的标识符 file scope

      代码块作用域:声明在{}中

      原型作用域:int getScore(int ucStudent); 该函数原型声明中,int ucStudent具有原型作用域

      函数作用域:这个不用管。

    总结链接属性:

    链接属性:external(外部链接属性)、internal(内部链接属性)和none(无链接属性)

    链接属性的作用:标识的链接属性决定如何处理在不同源文件中出现的标识符。

    例如,相同的标识符A出现在不同的源文件中,当这些源文件编译后形成目标文件,

    下一步进行链接形成可执行文件时,这些A表示同一个实体还是不同实体,由A的链接属性决定。

    external:具有外部链接属性的标识符,无论声明多少次,不管存在多个源文件中,都表示同一个实体。

    internal:当A具有intonernal链接属性,处于同一个源文件中的声明指向同一个实体,处于不同源文件中的多个声明分属不同的实体。

    none:不管处于同一个源文件还是不同源文件的声明,均指向不同的实体。

    1、具有文件作用域的变量默认均为“外部链接属性”

    2、在函数内部或代码块中声明的变量默认为“none“

    3、static 和 extern可以改变标识符的链接属性,但是具有如下限制:

      1)static :只对默认为external属性的声明才有改变的效果

      2)当extern关键字用于源文件中一个标识符的第一次声明时,具有改变链接属性的效果,但用于标识符的第二次或以后的声明时,则

      不会更改第一次声明的链接属性。

    总结存储类型

    存储类型指该变量存储变量值的内存类型。

    静态 普通内存中 全局变量、static全局变量、static局部变量
    自动存储类型 存储在堆栈中 局部变量
    register 存储在寄存器中 register关键字修饰的变量
  • 相关阅读:
    网页登陆注册认证
    把git上的larave项目通过SourceTree安装上再通过composer安装依赖库
    Mysql依赖库Boost的源码安装,linux下boost库的安装
    oracle date 和 timestamp区别
    easyUI datagrid 分页参数page和rows
    问题:org.hibernate.LazyInitializationException: failed to lazily initialize
    Struts2返回JSON数据的具体应用范例
    错误Batch update returned unexpected row count from update [0]; actual row count: 0;
    SSH2+proxool 出现No suitable driver found for proxool.mysqlProxool
    Proxool Provider unable to load JAXP configurator file: proxoolconf.xml
  • 原文地址:https://www.cnblogs.com/welsh-android-learning/p/4068379.html
Copyright © 2020-2023  润新知