简要概述:

  《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关键字修饰的变量

C和指针 第三章--数据的更多相关文章

  1. C和指针 (pointers on C)——第三章——数据

    第三章 数据 本章是非常重要的,在特定范围内使用.链接属性.存储类型.const.extern和statickeyword使用.几乎所有的公司是C++在采访的第一个问题. 总结: 具有external ...

  2. 《驾驭Core Data》 第三章 数据建模

    本文由海水的味道编译整理,请勿转载,请勿用于商业用途.    当前版本号:0.1.2 第三章数据建模 Core Data栈配置好之后,接下来的工作就是设计对象图,在Core Data框架中,对象图被表 ...

  3. Laxcus大数据管理系统2.0(5)- 第三章 数据存取

    第三章 数据存取 当前的很多大数据处理工作,一次计算产生几十个GB.或者几十个TB的数据已是正常现象,驱动数百.数千.甚至上万个计算机节点并行运行也已经不足为奇.但是在数据处理的后面,对于这种在网络间 ...

  4. 《C和指针》读书笔记——第三章 数据

    1.typedef:为各种数据类型定义新名字 typedef char  *ptr_to_char; ptr_to_char a;//声明a是一个指向字符的指针. 2.链接属性:extern;stat ...

  5. C和指针 第三章 变量的储存类型 auto、static、register以及static关键词

    变量的储存类型决定标量何时创建,何时销毁以及他的值保持多久.有三个地方可以储存变量: 普通内存static 运行时堆栈auto 硬件寄存器register 变量的缺省储存类型取决于它的声明位置: 静态 ...

  6. Java 螺纹第三版 第三章数据同步 读书笔记

    多线程间共享数据问题 一.Synchronizedkeyword      atomic一词与"原子"无关,它以前被觉得是物质的最小的单元,不能再被拆解成更小的部分.      当 ...

  7. c语言学习笔记第三章———数据和C

    B站有视频演示 本章将会讲解c语言的数据定义和使用,您将会了解int.float.double.char的含义,了解命名的规则,对c语言会有更加深刻的认识. 变量命名: 我们先讲上次视频没讲的变量命名 ...

  8. C和指针 第三章 链接属性 extern、internal、none

    三种链接属性 组成一个程序有多个源文件,如果相同的标识符出现在多个源文件中,那么标识符的链接属性决定如何处理在不同文件中出现的标识符. 链接属性有三种: external:外部 多个源文件中的相同标识 ...

  9. C和指针 第三章 指针常量与常量指针

    c语言中声明常量的两种方式 const int value int const value 如果要声明常量的指针,即指向常量的指针,则可以参考上面的常量声明修改一下 const int *ptr in ...

随机推荐

  1. 《Drools7.0.0.Final规则引擎教程》第4章 注释&错误信息

    注释 像Java开发语言一样,Drools文件中也可以添加注释.注释部分Drools引擎是会将其忽略调的.单行注释使用"//",示例如下: rule "Testing C ...

  2. Android版本的"Wannacry"文件加密病毒样本分析(附带锁机)

    一.前言 之前一个Wannacry病毒样本在PC端肆意了很久,就是RSA加密文件,勒索钱财.不给钱就删除.但是现在移动设备如此之多,就有一些不法分子想把这个病毒扩散到移动设备了,这几天一个哥们给了一个 ...

  3. 为什么Android无法设置无标题栏?

    首先我用的是Android Studio开发,但几乎试过了所有的方法,都无法设置无标题栏,最后改了一下style才解决 要在parent的值里面要加Base.····· 然后问题就解决了,这样所有的标 ...

  4. 显卡、显卡驱动、显存、GPU、CUDA、cuDNN

    显卡 Video card,Graphics card,又叫显示接口卡,是一个硬件概念(相似的还有网卡),执行计算机到显示设备的数模信号转换任务,安装在计算机的主板上,将计算机的数字信号转换成模拟 ...

  5. yum安装php5.5,php5.6和php7.0

    本文主要介绍在CentOS系统下的php多个版本的安装使用 1.清理系统上的旧版本php 1)查询已安装的php软件 rpm -qa|grep php* yum list installed | gr ...

  6. learn go random

    package main // 参考文档: // go 基本类型和运算符 // https://github.com/Unknwon/the-way-to-go_ZH_CN/blob/master/e ...

  7. int('x', base)中的base参数

    >>> int('12', 16) 16表示'12'就是16进制数,int()要将这个16进制数转化成10进制.

  8. 51Nod 1439:互质对(用莫比乌斯来容斥)

    有n个数字,a11,a22,…,ann.有一个集合,刚开始集合为空.然后有一种操作每次向集合中加入一个数字或者删除一个数字.每次操作给出一个下标x(1 ≤ x ≤ n),如果axx已经在集合中,那么就 ...

  9. crt,excrt学习总结

    \(crt,Chinese\ Remainder\ Theorem\) 概述 前置技能:同余基础性质,\(exgcd\). \(crt\),中国剩余定理.用于解决模数互质的线性同余方程组.大概长这样: ...

  10. hadoop2.x配合ZooKeeper集群环境搭建

    前期准备就不详细说了,课堂上都介绍了1.修改Linux主机名2.修改IP3.修改主机名和IP的映射关系 ######注意######如果你们公司是租用的服务器或是使用的云主机(如华为用主机.阿里云主机 ...