第三章 基本数据类型、运算符与表达式

3、基本数据类型、运算符与表达式

C语言的数据类型

常量、变量和标识符

简单数据类型与表示范围

著名计算机科学家沃思提出:程序=数据结构+算法

算法就是对数据处理的描述,算法是为解决一个问题而采取的方法和步骤,是程序的灵魂。

1、C语言的数据类型

C语言在处理数据之前,必须具有明确的数据类型。因此,C语言是一种强类型语言。

C语言中,数据类型可以划分为 基本数据类型、构造数据类型、指针类型、空类型 四大类。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RNhfXroD-1655278206060)(https://cdn.jsdelivr.net/gh/2339539741/tuchuang/img/202206151529646.png)]

2、常量、变量和标识符

C语言中存在这两种表征数据的形式:常量和变量。常量用来表示数据的值,变量不仅可以用来表示数据的值,而且可以用来存放数据。因为变量对应这一定的存储单元。

常量是程序在运行时其值不能改变的量称为常量(即常数)。

常量分为:直接常量(值常量)和符号常量

  • 直接常量主要包括整型常数、实型常量、字符常量、字符串常量。

  • 符号常量用标识符来代替常量。定义一个符号常量需要使用一条预处理命令 #define,例如 #define 符号常量 常量

(define 前面的#标志着define是一个预处理命令,而不是C语句。)

变量就是在程序运行过程中,其值可以被改变的量称为变量。对变量进行赋值就是将数据写到变量所对应的内存单元中。

标识符的有效长度:在TC2.0 及BC3.1 中为1~32个字符,默认值为32,但在VC6.0 、VC2010 、CB17.12 中其长度可达255

img

3、简单数据类型与表示范围

1、整数的数值在内存中以补码的形式存放。

2、在TC2.0 或 BC3.1 下,一个整数默认情况下需要2字节(16位)的内存单元存放;而在VC6.0、VC2010或CB下,则需 要4字节(32位)

3、数据在内存中的存放位置是高字节放在高地址的存储单元中,低字节放在低地址的存储单元中。

4、**数据溢出!!!**例如 -65535在16位的内存单元中的存储 65535的补码,再取反,再加 1 ,最后保留16位。

5、当程序定义了一个变量后,计算机会为这个变量分配一个相应大小的内存单元,因此这个变量是有值的,它的值就是对 应内存单元的值。但这个只是无法预知的。

6、对于有符号数和无符号数,其实在计算机内存中的表示是不加区分的(但运算时有区别),都是以补码形式表示。

7、实型也称浮点型。它有两种形式:十进制小数形式和十进制指数形式。

  • 十进制小数形式:由数码0~9和小数点组成。
  • 十进制指数形式:由十进制数,加阶码标志e或E以及阶码(只能为整数,可以带符号)组成。其一般形式为aEn,a为十进制数,n为十进制整数,都不可缺少。
  • 对于浮点数,小数部分占的位数越多,它所能表示的精度越高,阶码部分占的位数越多,它所能表示的值越大。
  • 三种实数类型中,其精度是float<double<long double
  • long float 就是double。
  • 所有的实型常量按照double类型处理。

8、字符型数据实际上就是整型数据。但它只占用1字节(8位)的内存单元,用于存放该字符所对应的ASCLL码的值。

9、字符常量只能用单引号括起来,不能用双引号或其他括号。它还可以用转义字符表示。

10、广义地讲,C语言字符集中的任何一个字符均可以用转义字符表示。(‘\134’ 表示反斜线)

11、C语言中没有相应的字符串变量。

12、被赋值变量的值就是赋值表达式的值。

13、连续赋值表达式的运算顺序是从右至左(又称右结合性)。

14、强制类型转换

  • 自动转换:1.短长度的数据类型——>长长度的数据类型。2.长长度的数据类型——>短长度的数据类型。

​ 无符号短长度——>长长度 高位补0

​ 有符号短长度——>长长度 符号位向高位扩展

​ 长长度——>短长度 直接截取

  • 强制转换:(类型说明符)(表达式)

15、%只能用于整数的运算。

16、表达式就是用运算符和括号将运算对象(常量、变量和函数等)连接起来的、符合C语言语法规则的式子。

17、算术表达式就是表达式中的运算符都是算术运算符。

18、++ 和-- 运算符只能用于变量,不能用于常量和表达式,因为它们蕴含着赋值操作。当它们连用时,按从右到左的顺 序。

19、位运算符包括按位与(&),按位或(|),按位取反(~),按位异或(^),左移(<<)和右移(>>),位运算符只能作用于整型数 据(它们包括int、short、long和char)。(按位取反>移位>按位与>按位异或>按位或)

  • 左移:对某变量所对应的二进制数往左移位,溢出的最高位被丢掉,空出地位用零填补。
  • 右移:对某变量所对应的二进制数往右移位,溢出的最低位被丢掉,如果变量是无符号数,空出的高位用零填补,如果变量是有符号数,空出的高位用原来的符号位填补(即负数填1,正数填0)
  • 移位运算符两边必须是整型数,否则非法。且移位不改变变量的值。

20、sizeof 表达式 sizeof(数据类型名或表达式)。

21、在C语言操作中,如果遇到无符号数与有符号数之间的操作,编译器会自动转换为无符号数来进行处理。

image-20220615113939313 img img image-20220615150728572
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值