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关键字修饰的变量
时间: 2024-08-11 05:44:46

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

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

第三章 数据 本章是非常重要的,在特定范围内使用.链接属性.存储类型.const.extern和statickeyword使用.几乎所有的公司是C++在采访的第一个问题. 总结: 具有external链接属性(包含external.internal.None)的实体在其它语言的术语里称为全局实体(global),全部cpp里的函数都能够訪问它. 仅仅要声明的时候在函数体或代码块外部(包含main函数).默认的链接属性都是external. 假设声明的在代码块内部,说明它引用的是一个全局变量. 具

爬虫学习之第三章数据存储

第三章 数据存储 第一节 json文件处理: 什么是json: JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式.它基于 ECMAScript (w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据.简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言. 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率.更多解释请见:https://baike.baidu.com/item/JS

Java 线程第三版 第三章数据同步 读书笔记

多线程间共享数据问题 一.Synchronized关键字 atomic一词与"原子"无关,它曾经被认为是物质的最小的单元,不能再被拆解成更小的部分. 当一个方法被声明成synchronized,要执行此方法的thread必须先取得一个token,我们将它称为锁.一旦该方法取得(或者说是获得)锁,它将运行此方法然后释放掉(或者返回)此锁.不管方法时怎样返回的(包括通过异常)该锁会被释放. 二.Volatile关键字 如果变量被标示为volatile,每次使用该变量时都必须从主寄存器中读出

第三章 数据决定程序结构

本章主要讲解一个合适的数据结构对一个程序的重要性.一个好的数据类型能够节省开发时间也能够节省内存的消耗. 文末总结一下四点: 1.使用数组重新编写重复代码.在现在的变成中主要用到的是list.map之类的数据结构来代替数组. 2.封装复杂结构.抽象bean. 3.尽可能使用高级工具.超文本.名字-值对.电子表格.数据库.编程语言等都是特定问题领域中的强大的工具.由于本书出版的年份较早,这里提到的基本都是日常开发需要用到的.比较新的工具redis在现在工程中刚接触到.也是基于键-值对的形式存储数据

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

多线程间共享数据问题 一.Synchronizedkeyword atomic一词与"原子"无关,它以前被觉得是物质的最小的单元,不能再被拆解成更小的部分. 当一个方法被声明成synchronized,要执行此方法的thread必须先取得一个token,我们将它称为锁. 一旦该方法取得(或者说是获得)锁,它将执行此方法然后释放掉(或者返回)此锁.无论方法时如何返回的(包含通过异常)该锁会被释放. 二.Volatilekeyword 假设变量被标示为volatile.每次使用该变量时都必

【数据分析 R语言实战】学习笔记 第三章 数据预处理 (下)

3.3缺失值处理 R中缺失值以NA表示,判断数据是否存在缺失值的函数有两个,最基本的函数是is.na()它可以应用于向量.数据框等多种对象,返回逻辑值. > attach(data) The following objects are masked fromdata (pos = 3): city, price, salary > data$salary=replace(salary,salary>5,NA) > is.na(salary) [1] FALSEFALSE TRUE

《数据挖掘概念与技术》--第三章 数据预处理

一.数据预处理 1.数据如果能够满足其应用的要求,那么他是高质量的. 数据质量涉及许多因素:准确性.完整性.一致性.时效性.可信性.可解释性. 2.数据预处理的主要任务:数据清洗.数据集成.数据规约.数据变换. 二.数据清理:试图填充缺失值,光滑噪声.识别利群点.纠正数据中的不一致. 1.缺失值的处理: 1)忽略元组:缺少类标号时通常这么做.但是忽略的元组其他属性也不能用,即便是有用的. 2)人工填写:该方法很费事费时,数据集很大.缺失值很多时可能行不通. 3)使用一个全局常量填充缺失值:将缺失

第三章 数据

3.1基本数据类型 3.1.1整型家族 整型家族包括字符.短整型.整型和长整型,它们都分为有符号(signed)和无符号(unsigned)两种版本. 长整型至少因该和整型一样长,整型至少因该和短整型一样长. 头文件limits.h说明了各种不同整数类型的特点. 字面值(literal)这个术语是字面值常量的缩写--这是一种实体,指定了自身的值,并且不允许发生改变. 3.1.2浮点类型 头文件float.h定义了名字FLT_MAX.DBL_MAX和LABL_MAX,分别表示float.doubl

数据分析第三章 数据准备

1. 数据表的设计:     1)数据表由标题行和数据部分组     2)第一行是表的列标题(字段名),列标题不重复     3)第二行起始数据部分,数据部分的每一行数据称为一个记录,并且数据部分不允许出现空白行和空白列.     4)数据表中不能有合并单元格存在.     5)数据表与其他数据之间应该流出至少一个空白行和一个空白列     6)数据表需要以一维的形式存储,但是在实际操作中接触的数据往往是以二维表格的形式存在的,此时应将二维表转化为一维表的形式存储数据. 注:数据表的"维&quo