3.1 数据的表现形式和运算
3.2.1 常量和变量
- 常量
- 含义:其值不可被改变的量
- 分类:(1)整型常量;(2)实型:十进制小数,指数。(3)字符:普通字符和转义字符;(4)字符串常量:用双引号括起来;(5)符号常量:用预编译指令
“ #define”指定一个符号名称代表一个常量
- 变量
- 一个有名字的具有特定属性的存储单元; 用来存放数据(变量的值),变量的值是可以改变的。
- 变量名和变量值区别:变量名实际上代表的是一个存储地址,变量值指的是存储的数据。在对程序编译连接时,由编译器给变量名分配对应的内存地址;从变量中取值实际上是通过变量名找到对应的内存地址,从该内存中取值。
- 常变量
- 格式:在关键字之前加const ,如:
const int a,在变量存在期间其值不能被改变。 - 常变量和常量的异同:1)常变量具有变量的基本属性,有类型,占据存储单元,但值不能被改变;常变量是有名字的不变量,常量没有名字。
标识符
- 字符序列(对象的名字)
- 标识符的命名规范:不能以数字开头;由字母、数字、下划线组成。
数据类型
(1)类型:就是对数据分配存储单元的安排,包括长度、存储形式。
- (2)数据类型的分类:
- 基本类型
- 整型
- 基本整型(int)4byte
- 短整型(short)2
- 长整型(long) 4
- 双长整型(long long int)8
- 字符型(char) 1
- 布尔型(bool)
- 浮点型
- 单精度浮点型(float)4
- 双精度浮点型(double)8
- 复数~(float_complex.)
- 整型
- 枚举(enum)、空类型(void)
- 派生类型
1. **指针类型()**1. **数组 ([])**1. **结构体(struct)**1. **共用体(union)**1. **函数类型**
- 基本类型
5. 整型数据(见P44)
- 存储方式:二进制补码
- 整型变量的存储空间和值的范围
- 说明 :有符号与无符号类型(unsigned-)的大小相同
- int :4字节(32位);-2147 483 648~2 147 483 647(-2^31-(2^31-1))
- short :2字节;-32 768~32 767(-2^15~(2^15-1))
- long:4字节;-2 147 483 648~2 147 483 647(-2^31-(2^31-1))
- long long :8字节;-9 223 372 036 854 775 808~9 223 372 036 854 775 807(-2^63~(2^63-1))
- 字符型数据(P47)
- 说明 :有符号与无符号类型(unsigned-)的大小相同
- 包括ASCII字符集在内的字符集含有127个字符,以整数形式存储;c语言中指定用一个字节(8位)存放一个字符。
- 字符变量的存储空间和值范围:1)(signed)char:1 字节 ;-128~127。2)unsigned char :1;0~255
- 浮点型数据
- 实数称为浮点型数据,实数是以指数形式存放在内存中的;
- 分类:1)float : 4 byte; 2) double : 8 byte;3)long double :8 byte
- 常量
- 整型常量:int 型 :4字节;long int : 4字节
浮点型常量:凡是以指数或小数形式出现的实数均为浮点型常量,内存中以指数形式存储;默认为double。
3.2 运算符和表达式
3.2.1 C运算符分类(基本)
算数:+ - * / % 等
- 关系:= > < >= <= !=
- 逻辑:!&& ||
- 位运算:<< >> ~ | ^ &
- 赋值:= 及其扩展
- 条件: (?:)
- 指针:(* ,&)
- 逗号:(,)
- 求字节数:(sizeof )
-
3.2.2 算数表达式和运算符的优先级与结合性
含义:用(算术)运算符和括号将运算对象连接起来的,符合规则的式子称为C(算术)表达式。
- C语言的优先级:按运算符的优先级别处理
C语言的结合性:1)一个操作数两侧的运算符优先级相同按“规定的结合性”。2)算术运算符: 按“从左至右”的结合方向—“左结合性”。3)赋值运算符:按“从右至左”—“右结合性”
3.2.3 强制类型转换运算符
格式: (类型名) (表达式)
- 注意:表达式如果为像:x+y,应该用括号;强制类型转换后得到的是一个所需类型的中间数据,而原变量的类型没变。
3.3 C语句
- 分类
- (1)控制语句:九种:if—else;for;while 等。
- (2)函数调用语句:函数加一个分号组成。
- (3)表达式语句:加一个分号构成;空语句;符合语句。
赋值语句
- 赋值运算符:“=”;“+=”·····
- 赋值表达式: 变量 赋值运算符 表达式
- 赋值运算符左侧是一个可修改的左值;
- 左值应当为存储空间且可被赋值;左值都可充当右值。
赋值过程中的类型转换
① 浮点数→(赋值)整型变量,先对其取整再赋值<br /> ② 整型→浮点型:数值不变,但以浮点数形式存储于变量<br /> ③ 双精度→单精度:先将双精度转换为单精度,取6-7位的有效数字存储到float变量的4字节中<br /> ④ 多字节整型数据→少字节整型数据:只将高字节数的低位数据赋值到低字节变量(截断)
赋值表达式和赋值语句
scanf(“%d”,&a); 函数中“&”取地址符号,&a:表示取a的地址值;“从终端输入的数据存储到地址为&a的存储空间。”
-
3.4.2 输入输出的有关概念
输入输出是由C标准库函数提供的,c语言本身不提供输入输出语句;
预处理指令 :#include < .h>,#include “ .h”(自定义)
3.4.3 printf 函数输出和scanf函数输入
1.printf(“格式控制字符串”, 输出表列):格式字符串包括:①格式声明 (% +格式字符) ,②普通字符
- 2.scanf 函数输入
- 格式字符和printf一致
- 格式附加字符:① l :%ld 输入长整型数据;② h: 短整型 %hxo ; 本输入项在读入后不赋给相应的变量。
- 注意的问题:
格式字符
