版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/csuft20164442/article/details/86554716
C语言总结
第三章、数据类型、运算符与表达式
数据类型
数据类型总表
基本数据类型
标识符
- 定义: 用来标识变量、常量、函数等的字符序列
- 组成:
- 只能由 字母、数字、下划线组成,且第一个字母必须是字母或下划线
- 大小写敏感
- 不能使用关键字
- 长度: 最长32个字符
- 命名原则:
- 见名知意
- 不宜混淆 如I(i的大写)与l,o与 0
常量
定义: 程序运行时其值不能改变的量(即常数)
分类:
- 符号常量:用标识符代表常量
- 定义格式: #define 符号常量 常量
- 一般用大写字母
- 是宏定义预处理命令,不是C语句
在这里插入图片描述
- 直接常量:
(1)整型常量
(2)实型常量
(3)字符常量
(4)字符串常量
整型常量(整常数)
-
三种形式:
- 十进制整数: 由数字0~9和正负号表示.如 123,-456,0。
- 八进制整数: 由数字0开头,后跟数字0~7表示.如0123,011。
- 十六进制整数: 由0x开头,后跟0~ 9,a~ f,A~F表示,如0x123,0Xff。
-
整型常量的类型
- 根据其值所在范围确定其数据类型
- 在整常量后加字母l或L,认为它是long int 型常量
实型常量(实数或浮点数)
-
表示形式:
- 十进制数形式: (必须有小数点) 如0.123, .123, 123.0, 0.0, 123。
- 指数形式:(e或E之前必须有数字;指数必须为整数)如12.3e3 ,123E2, 1.23e4 , e-5 , 1.2E-3.5
-
整型常量的类型
- 默认double型
- 在实型常量后加字母f或F,认为它是float 型
字符常量
- 定义: 用 单引号 括起来的 单个普通字符 或 转义字符. 。
- 字符常量的值: 该字符的ASCII码值 。
- 转义字符: 反斜线后面跟一个字符或一个代码值表示。
字符串常量
- 定义: 用双引号(“”)定界的零或多个字符序列。
- 存储: 每个字符串尾自动加一个 ‘\0’ 作为字符串结束标志。
- 字符串长度: 即字符个数,不包括‘\0’。
- 字符常量与字符串常量不同
变量
- 概念: 其值可以改变的量
- 变量名与变量值: 名字代表某存储空间即地址,其间所存的数据即变量值
- 变量定义的一般格式:
- 变量初始化:定义时赋初值
- 变量的使用:
- 变量定义位置: 一般放在函数开头
整型变量
- 占字节数随机器不同而不同,一般占一个机器字
- short≤int≤long
- 可用sizeof(类型标识符)测量
实型变量
- float: 占4字节,提供7位有效数字
- double: 占8字节,提供15~16位有效数字
字符型变量
- 字符变量存放字符ASCII码
- Turbo C中字符数据为有符号数
(362)8=(11110010)2 计算机内以补码表示,其真值即为-14 - char与int数据间可进行算术运算
不同类型数据间的转换
隐式转换
- 什么情况下发生
- 运算转换------不同类型数据混合运算时
- 赋值转换------把一个值赋给与其类型不同的变量时
- 运算转换------输出时转换成指定的输出格式
- 运算转换------实参与形参类型不一致时转换
- 运算转换规则: 不同类型数据运算时先自动转换成同一类型
显式转换(强制转换)
- 一般形式:(类型名)(表达式)
说明: 强制转换得到所需类型的中间变量,原变量类型不变
运算符和表达式
运算符: 表示某种运算形式。
表达式: 运算符、括号将操作数连接起来所形成
的符合C语法规则的式子。
学习运算符应注意:
- 运算符功能
- 与运算量关系
1、要求运算量个数
2、要求运算量类型 - 运算符优先级别
- 结合方向
- 结果的类型
算术运算符和表达式
基本算术运算符:+ - * / % (分别是加、减、乘、除、取余)
(1)结合方向:从左向右
(2)优先级:* / % -----> + -
说明:
- “-”可为单目运算符时,右结合性
- 两整数相除,结果为整数
- %要求两侧均为整型数据
自增、自减运算符 ++ - -
- 作用: 使变量值加1或减1
- 种类:
(1)前置:++i,–i(先执行i+1或i-1再使用i值)
(2)后置:i++,i–(先使用i值,再执行i+1或i-1) - 说明:
(1)++ - - 只能用于整型变量,不能用于常量和表达式,如5++,(a+b)++
(2)++ - - 结合方向: 自右向左
赋值运算符和表达式
简单赋值运算符
- 符号: =
- 格式: 变量标识符=表达式
作用: 将一个数据(常量或表达式)赋给一个变量
复合赋值运算符
-
种类:+= -= *= /= %= <= >= &= ^= |=
-
含义: exp1 op= exp2 exp1 = exp1 op exp2
-
说明:
(1)结合方向:自右向左
(2)左侧必须是变量,不能是常量或表达式
(3)赋值转换规则:使赋值号右边表达式值自动转换成其左边变量的类型
(4)赋值表达式的值与变量值相等,且可嵌套
逗号运算符和表达式
形式:表达式1,表达式2,……表达式n
结合性: 从左向右
逗号表达式的值: 等于表达式n的值
用途: 常用于循环for语句中
关系运算符和表达式
种类: < <= == >= > !=
结合方向: 自左向右
优先级别:
关系表达式的值:是逻辑值“真”或“假”,用1和0表示
逻辑运算符和表达式
种类: ! && ¦¦
逻辑运算真值表:
C语言中,
运算量:0表示“假”,非0表示“真”,
运算结果: “假” 用整数0表示, “真” 用整数1表示,
短路特性:逻辑表达式求解时,并非所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符。
条件运算符与表达式
一般形式:expr1 ? expr2 : expr3
**功能:**相当于条件语句,但不能取代一般if语句
结合方向:自右向左
expr1、expr2、expr3类型可不同,表达式值取较高的类型