C语言系列(三):基本数据类型与表达式

在这里插入图片描述

计算机中的数据不单是简单的数字,所有计算机处理的信息,包括文字、声音、图像等都是以一定的数据形式存储的,数据在内存中保存,存放的情况由数据类型决定。

C语言的数据类型
基本类型:
整型,字符型,实型(浮点型)[单精度,双精度]
构造类型:
数组类型,结构体类型,共用体类型,枚举类型
指针类型
空类型

整数类型

整数类型即整型,C语言中又分为短整型(short),基本整型(int),长整型(long),和无符号型(unsigned)4种,无符号型又细分为无符号整型(unsigned int),无符号短整型(unsigned short),无符号长整型(unsigned long)。

注意:C语言没有规定以上各类型数据所占内存的字节数,且不同计算机在处理上有所不同。

在这里插入图片描述

整型数据溢出:若一个int型数据超出最大允许值,出现数据丢失的情况。解决办法是使用表示范围更大的数据类型,如long int。

说明:有符号数指存储单元最高位表示符号,无符号数表示存储单元中全部二进制位都用来存放数据。

C语言整型数据一般有十进制、八进制、十六进制3种表达形式。

  1. 十进制:与数学上的表示相同,如1234,-888等;
  2. 八进制:以数字0开头,后跟其他数字,如01234,-0888等;
  3. 十六进制:以0x开头,后跟其他数字,如0x00,0x1A等。

注意:在整数后面加一个字母l或L,则认为是长整型。

实数类型

实数类型即实型数据(浮点型数据),包括单精度float和双精度double两类。

在这里插入图片描述

说明:实数在计算机中只能近似表示,运算中也会产生误差。

C语言实型数据(浮点型数据)一般有2种表达形式:

  1. 浮点表示形式:即小数形式,小数点前后至少一边有数字,如1.23,0.88等;
  2. 科学计数法表示:在E(e)之前的尾数必须有数据(可以是小数),之后的指数只能是整数,指数为正则可以省略符号,如1.234E+6、1.234E6、-1.234e-6。

实型数据溢出:若一个float型数据超出最大允许值,出现数据丢失的情况。解决办法是使用表示范围更大的数据类型,如double,long double等。

字符类型

在这里插入图片描述

说明:

  1. 表示:用单引号表示,如‘a’,’A’等;
  2. 每个字符型数据在内存中占1个字节;
  3. 转义字符:用反斜杠()引导的一个字符或一个数字序列可以表示自负两,它将反斜杠后面的字符或数字转换成别的意义。

常见转义字符

在这里插入图片描述

符号常量

在C语言中可以使用宏定义命令#define定义一个标识符作为符号常量,符号常量名一般使用大写字母,以区分变量名,其一般定义格式如下:#define 标识符 常量
例如:
#define MAX 100
#define MIN 0
#define PI 3.14
作用:一旦某标识符定义成为一个常量后,以后在程序处理时,凡是遇到该标识符,都将替换成对应的常量。

变量与变量定义

变量定义语句
格式:数据类型名 变量表名;
作用:声明变量的名称和类型,分配相应的内存单元

变量定义的4种位置:

  1. 一般放在函数的开头部分声明,即局部变量,作用域只在本函数内;
  2. 函数名后的括号内声明,即函数形式参数,也是局部变量,作用域只在本函数内;
  3. 放在复合语句内声明,即临时变量,作用域只在复合语句内;
  4. 放在任何函数外声明:即全局变量,作用域在整个程序。

对于变量赋初值,有几点说明:

  1. 若=两边类型不一致,系统自动进行类型转换,转换时以=左边变量类型为准,因此,可能会造成数据丢失;
  2. 对几个变量赋同一个值,不能连等赋值,必须逐个赋值;
    int a = b = c = 10;//非法赋值
    int a = 10, b = 10, c = 10;//合法赋值
  3. 初始化变量值不是在编译阶段完成,而是在程序运行时执行,相当于一个赋值语句。

C语言运算符

在这里插入图片描述

自增运算符与自减运算符
++与–属单目运算符,操作对象只能是变量,功能使变量的值加1或减1,结合性为右结合。
自增(++)有两种使用格式,前加和后加。

  1. 前加
    形式:++n,相当于n=n+1,运算顺序是先执行n=n+1再将n的值作为表达式的值。
  2. 后加
    形式:n++,相当于n=n+1,运算顺序是先将n的值作为表达式的值,再执行n=n+1操作。
    注意:++与–的操作对象只能是变量,不能是常量或表达式。3++或(i+j)++都是非法表达式。

赋值表达式
复合算术赋值运算符
在这里插入图片描述

说明:

  1. 优先级低于算术运算符、关系运算符、逻辑运算符。
  2. 结合性按自右向左方向结合。例如a=b=20/4相当于a=(b=20/4)。

逗号表达式
一般形式:表达式1,表达式2,…,表达式n
求解过程:先计算表达式1的值,再计算表达式2,以此类推。最后将表达式n的值作为逗号表达式的值,再将表达式n的类型作为逗号表达式的类型。

逗号表达式的优先级低于赋值表达式,级别最低。因此逗号表达式须用括号括起来,作为整体。结合性为自左向右,即左结合。

条件运算符
一般形式:表达式1?表达式2:表达式3
求解过程:先计算表达式1的值,如果为真,则求解表达式2的值并把该值作为整个表达式的值;如果为假,则求解表达式3的值并把该值作为整个表达式的值

条件运算符的优先级较低,只比赋值运算符高。结合性为右结合。
注意:条件表达式常用语两分支的简单情况,代替if-else语句。

长度运算符
sizeof是单目运算符,用来返回变量或数据类型的字节长度。使用sizeof可以增强程序的可移植性,使之不受具体计算机类型长度的限制。

类型转换
C语言类型转换可以归纳成3种转换方式:自动转换,赋值转换,强制转换。
自动转换类型转换规则(低优先级->高优先级):
char,short -> int -> unsinged -> long -> double<-float

赋值转换时将字符行数据赋值给整型变量,字符数据占整型数据的低字节,高字节补位。
强制转换一般形式:(类型名)(表达式)

参考资料:肖捷 侯家利——C语言在这里插入图片描述
程序设计

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值