330 likes | 511 Views
程序设计基础( C 语言). 东北大学高级语言程序设计课程组 课程网站: www.neu.edu.cn/cxsj. 计算机及程序设计概述. 基本数据类型、常量及变量. 信息编码与存储. 数据 数据是程序设计中所要涉及和描述的主要内容 数据是程序加工、处理的对象 数据同样是加工的结果 数据在计算机中的存储 数值型数据的存储 文字型数据的存储. 标识符和关键字. 标识符 C 语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线 关键字 关键字是由C语言规定的具有特定含义的字符串(英文单词),又称为保留字。.
E N D
程序设计基础(C语言) 东北大学高级语言程序设计课程组 课程网站:www.neu.edu.cn/cxsj
计算机及程序设计概述 基本数据类型、常量及变量
信息编码与存储 • 数据 • 数据是程序设计中所要涉及和描述的主要内容 • 数据是程序加工、处理的对象 • 数据同样是加工的结果 • 数据在计算机中的存储 • 数值型数据的存储 • 文字型数据的存储
标识符和关键字 • 标识符 • C语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线 • 关键字 • 关键字是由C语言规定的具有特定含义的字符串(英文单词),又称为保留字。
什么是数据和数据类型 • 数据类型 • 数据类型的概念 • 数据类型是一类数据的抽象表示,这类数据具有相同的形式,遵从相同的运算规则 • 程序处理的基本数据按性质划分 • 属于同一类的各个数据都具有同样的性质 • 同样的操作 • 同样的编码方式 • 把程序语言中具有这样性质的数据集合称为数据类型。
数 组 类 型 结 构 体 类 型 共 用 体 类 型 标准类型 用户定义类型 整型 实型 字符型 枚举型 单精度型 双精度型 C语言的数据类型 数据类型 • 数据类型的分类 空类型 指针类型 构造类型 基本类型 • 基本类型 • 构造简单,已由系统定义好 • 构造类型 • 由其它数据类型按一定规则构造而成。 • 指针类型 • 用于存放地址(指针),用来解决动态数据的建立、删除和使用 • 空类型 • 用于数据类型的转换
C语言的数据类型 • 数据类型的分类 • 每个数据类型都有固定的表示方式 • 这个表示方式确定了可能表示的数据范围以及数据在内存中的存放形式 • C程序中所出现的所有数据都必须明确指定其数据类型 • 数据类型的体现 • 常量和变量是在计算机中数据类型的表现形式 • 存放的是实在的数据,这些数据符合对数据类型的规定 • 常量和变量之间的区别在于程序执行过程中的变化情况 • 常量是一成不变的 • 变量则可以不断改变
C语言的数据类型 • 数据类型的长度 • 在计算机中,由于软硬件的各种原因,数据类型必须有一个长度的限制 • 这个长度是指数据存储在计算机中需要占用多少个字节数 • 不同类型的数据在内存中占用的字节数是不同的 • 溢出处理 • 不同的数据类型规定了不同的机内表示长度,也决定了对应数据量的变化范围,当某一数据超出该数据类型所规定的范围时,计算机会拒绝接受,而将之转换成范围内的另外某个数,这种情况称之为溢出处理。
常量 • 常量 • 在程序运行过程中其值不能被改变的量值 • 例1: • 1,200 • 3.1,-4.0 • ‘A’,‘b’ • “abc”,“AB\n” • 在程序中使用常量时,一般不需要具体指出它属于哪一种类型C语言编译系统会自动根据常量的数据大小和直观形式来确定它的数据类型 • 例2: • 3,3.0,‘3’,“3”
常量 • C语言提供的常量 • 数值常量 • 整型 • 实型 • 字符常量 • 字符常量 • 字符串常量 • 这些类型决定了各种常量所占存储空间的大小和数的表示范围 • 特殊形式常量 • 符号常量
常量 • 整型常量 • 一个整数 • 常用的整数类型整型(VC中) • 4字节 • 长整型 • 8字节 • 无符号整型 • 4字节 • 无符号长整型 • 8字节
常量 • 整型常量 • 三种形式 • 十进制,有效的十进制数字串 • 例:100,32767,-120 • 八进制,以数字“0”开头的八进制数字串 • 例:0100,0123,-012 • 十六进制,以数字0x或0X开头的十六进制字符串 • 例:0x123 ,0x100,-0x12 • 长整型常量 • 可表示为:十进制、八进制、十六进制 • 在常数之后加上字母"l"或"L"
常量 • 实型常量 • 实数,又称浮点数 • 类型 • 单精度型 • 4字节: ±10-38~ 1038 • 双精度型 • 8字节: ±10-308~10308 • 长双精度型 • 16字节: 10-4931 ~ 104932
常量 • 实型常量 • 有效位数 • 单精度有效数字位数为十进制数的6~7位 • 双精度有效数字位数为十进制数的15~16位 • 长双精度型有效数字位数为十进制数的18~19位 • 两种形式 • 小数形式 • 由正负符号、整数部分、小数点及小数部分组成 • 例:3.0,5.123,-120.1,0.0 • 指数形式 • 由尾数、字母e或E及指数部分组成 • 例: 123.0E-1,-1.23e3 • 标准的指数形式是:小数点的左侧只有一位数字
常量 • 实型常量 • 提示 • 在C语言中,实型常量一般都作为双精度来处理 • 注意指数必须是不超过数据表示范围的正负整数,并且在e或E前必须有数字 • 对于超过有效数字位的数位,系统存储时自动舍去
常量 • 字符常量 • 包括可以全部在计算机上显示的符号 • ASCII码表上的全部字符 • 一个字符的存储占用一个字节 • 表示方法 • 用单引号‘ ’括起来的一个字符 • ‘A’,‘1’ • 用单引号‘ ’括起来的以 ‘\’ 字符开始的字符 • ‘\n’,‘\t’
常量 • 字符常量 • C语言中字符型数据和整型数据可以通用 • 字符型数据在计算机中存储的是字符的ASCII码 • ASCII码形式上就是0 到255之间的整数 • 例如 • 字符"A"的ASCII码值用是65 • ‘A’+32; /*执行结果65+32=97,是a的ASCII码值*/
常量 • 字符串常量 • 是用一对双引号括起来的字符序列 • 双引号仅做定界符使用,本身不算入字符串常量 • 例如 • “ABC”,“ ”(有空格),“a” , “Happy new Year”, “abc\n” ,“”(无空格)等 • C语言规定字符串的最后必须以空字符‘\0’结尾 • 编译程序总是自动地在字符串的结尾加上一个转义字符'\0‘ • ASCII码是0,所对应的字符是空 • 空字符并不计算在字符串的长度里,但是存储时, 空字符将会额外的占用一个字节空间
常量 ‘a’ → 97 • 字符串常量 • 字符串常量与字符常量的区别 • 形式 • 字符常量是用单引号括起的单个字符 • 字符串常量是用双引号括起的一串字符 • 存储方式 • 字符常量在内存中占一个字节 • 字符串常量除了每个字符各占一个字节外,其字符串结束符‘\0’也要占一个字节 • 例如 • 字符常量‘a’占一个字节 • 字符串常量"a" 占2个字节 “a” → 97 0
常量 • 符号常量 • 在C语言中允许程序中的常量定义为一个标识符,这个标识符称为符号常量 • 带有名字的常量 • 定义格式 • #define <符号常量> <常量> • 例如: • #define AGE 35 • #define M 1.9734067e9 • 提示 • 简化书写格式、减少出错率 • 定义符号常量可以提高程序的可读性,便于程序的调试和修改 • 符号常量不同于变量,在其作用域内不能被改变和重新赋值 • 习惯上人们把符号常量名用大写字母表示
变量 • 变量 • 在程序运行过程中其值发生改变(可以被改变)的量值 • C语言规定所有用到的变量都必须在程序中指定其数据类型,必须“先定义后使用” • 一个变量应该有一个名字(标识符) • 定义变量时要给其命名 • 一个变量应该有一种数据类型 • 编译系统根据定义变量的数据类型为其分配存储单元并在该存储单元中存放变量的值
变量 • 变量的命名 • 每个变量都由一个变量名来标识 • 在C语言中,变量名作为变量的标识,其命名规则符合标识符的所有规定 • 语言规定标识符只能由字母、数字和下划线组成且第一个 字符必须是字母或下划线 • 提示 • 大、小写字母被认为是不同的变量名 • 例:Sun、sun、SUN是三个不同的变量 • 尽量取与变量含义接近的名称
变量 • 变量的定义 • 变量定义的目的 • 定义变量名 • 定义变量的数据类型 • 变量的类型决定变量的存贮结构,使C语言的编译程序为所定义的变量分配存储空间 • 变量的定义说明了变量叫什么以及用来做什么 • 定义一个变量的过程,实际上就是向内存申请一个变量的数据类型大小的空间的过程 • 变量实质上就是内存某一单元的标识符号,对这个符号的引用就是对相应的内存单元的存取操作
变量 • 变量的定义 • 用类型说明语句对变量进行定义 • 定义格式 type namelist; • 变量表namelist的形式是:变量1,变量2,…,变量名n,用逗号分隔的变量名的集合 • 例 • int a,b23,C_123; • float sum; • char max_ch; • 变量的基本数据类型 • 整型、实型、字符型
变量 • 整型变量 • 不同类型的差别在于占用不同的存储空间 • 采用不同位数的二进制编码方式 • 计算机内部总是采用二进制补码形式表示一个数值型数据 • 例如: • 整型的最高位为符号位:“1”表示负数,“0”表示正数,其余15位表示数值 • 无符号整型数全部16位表示数值
变量 • 整型变量 • 整型类型的基本标志是int • 基本型(int) • 短整型(short int 、short) • 长整型(long int 、long ) • 无符号整型(unsigned int、unsigned long 、unsigned short) • 例 • int a;long b; unsigned int c; • 提示 • 使用某种类型的变量时,一定要注意该类型变量的取值范围
变量 • 实型变量 • 存储实型数据 • ANSI C允许的定义三种实型变量 • float 单精度型 • Double 双精度型 • long double 长双精度型 • 例 • float a,b; double x; long double y; • 提示 • 运用实数运算时要合理使用不同的类型,尽可能减少误差
变量 • 字符变量 • 用来存放一个字符常量 • 即一个字节存放一个字符 • 标示:char • 例:char c1,a2; • 提示 • 不能将一个字符串常量赋给一个字符变量 • 例:char c1,c2; c1=‘a’ ; c2=‘b’ ;——合法 c1=“a” ; c2=“b”;——非法
变量 • 变量赋值 • 初始化赋值方式(声明语句) • C语言允许在定义一个变量的同时对变量进行初始化 • 例: • int i=0;/*表示定义一个整型变量i的同时将i赋值为0*/ • int i,j,k=10;/*表示i,j,k为整型,只有k被赋值为10*/ • 提示 • 如果对几个变量同时赋一个初始值,则可以写成 float a=3.0,b=3.0,c=3.0;表示a、b、c的初始值均为3.0,但并不表示整个程序中三个变量值一直不变或一直相等
变量 • 变量赋值 • 先说明后赋值方式(赋值语句) • 在程序运行过程中用赋值语句给变量赋一个值 • 例如 • a=10; • const修饰符 • 表示将变量声明为“只读”,即程序可以访问const型变量的值,但不能修改它。
变量 • 变量在使用中应注意的问题 • 变量要先定义后使用 • 常量与变量的类型要匹配 • 变量的数值存储范围
其它语言的基本数据类型 • 与C概念相同,略有差异 • 整型 • 实型 • 字符型 • 新增类型 • 字符串类型 • 布尔型
例题和习题 • 变量的赋值及变量的溢出