简要概述:

  《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. C# ASP.NET MVC 之 SignalR 学习 实时数据推送显示 配合 Echarts 推送实时图表

    本文主要是我在刚开始学习 SignalR 的技术总结,网上找的学习方法和例子大多只是翻译了官方给的一个例子,并没有给出其他一些经典情况的示例,所以才有了本文总结,我在实现推送简单的数据后,就想到了如何 ...

  2. moment时间转换插件

    在vue中的使用: import moment = from “moment” Vue.prototype.$moment = moment; 获取时间戳 : var res = this.$mome ...

  3. MpVue开发之组件引入的问题

    再一次开发订餐系统中,遇到订餐页面引入头部商品列表,底部组件时,报错,模块编译失败,未进入缓存区. 我以为是新添加的模块没有重新启动导致的,然后重新与运行npm run dev后还是失败, 最后经过反 ...

  4. Mac根据端口号查询进程

    sudo lsof -i :8080

  5. 自定义vue全局组件use使用(解释vue.use()的原理)

    我们在前面学习到是用别人的组件:Vue.use(VueRouter).Vue.use(Mint)等等.其实使用的这些都是全剧组件,这里我们就来讲解一下怎么样定义一个全局组件,并解释vue.use()的 ...

  6. php array_push 与 $arr[]=$value 性能比较

    1.array_push方法 array_push 方法,将一个或多个元素压入数组的末尾. int array_push ( array &$array , mixed $var [, mix ...

  7. video4linux(v4l)使用摄像头的实例基础教程与体会(转)

    1. video4linux基础相关     1.1  v4l的介绍与一些基础知识的介绍   I.首先说明一下video4linux(v4l).           它是一些视频系统.视频软件.音频软 ...

  8. win7怎么安装和启动 jboss

    本文以JBoss Application Server 4.2.1 GA(以下简称JBoss)为例,介绍它在Windows平台上的启动过程.为了方便叙述,对平台环境做以下假定:Java运行时的安装路径 ...

  9. 5.JMeter测试mysql数据库

    1.使用jmeter测试mysql数据库时,需要导入jar包,jar包网盘地址为:链接: https://pan.baidu.com/s/1-5-s7HccudT4GirpmBVn6Q 密码: bea ...

  10. JMeter代码小Demo(Java)

    一.使用Eclipse进行项目编写 1.使用eclipse,新建项目名字为:TestNumber,包名为:test,类名为:TestNum 2.在JMeter的安装目下下lib/ext中copy2个j ...