zoukankan      html  css  js  c++  java
  • 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关键字修饰的变量
  • 相关阅读:
    sdk 和 Open API 有什么区别
    分布式锁介绍
    K8s 资源更新机制详解 (ResourceVersion 与 patch)
    Pod 一直处于pending状态但是kubectl describe和logs都没有输出信息的原因
    CAP 理论详解
    kubebuilder中的controller:latest是什么镜像
    Codeforces Round #441 (Div. 1, by Moscow Team Olympiad)
    Matrix Tree 定理及证明
    Codeforces Global Round 15 题解
    Harbour.Space Scholarship Contest 2021-2022 (Div. 1 + Div. 2) 题解
  • 原文地址:https://www.cnblogs.com/welsh-android-learning/p/4068379.html
Copyright © 2011-2022 走看看