【C语言中的数据类型】

1. 有名有姓的C

编程时给变量或者函数起的名字就是标识符,就好比我们在生活中的每一个同事,每一个朋友都有姓名,姓名就是这位朋友的标识符。c语言的标识符不可以随便起名字,必须遵循一定的规则

c语言规定,标识符可以是字符(A-Z,a-z),数字(0-9),下划线_组成的字符串,并且第一个字符必须是字母或者下划线。在使用标识符时还需要注意以下几点:

  1. 标识符的长度最好不要超过8位,因为在某些版本的C中规定标识符前8位有效,当两个标识符前8位相同时,则被认为时同一个标识符。
  2. 标识符是严格区分大小写的。例如Imooc和imooc是两个不同的标识符。
  3. 标识符最好选择有意义的英文单词组成做到"见名知意",不要使用中文。
  4. 标识符不能是c语言的关键字

2. C语言中的关键字(32个)

  • 数据类型关键字(12个)
  1. char:声明字符型变量或函数
  2. double:声明双精度变量或函数
  3. enum:声明枚举类型
  4. float:声明浮点型变量或函数
  5. int:声明整型变量或函数
  6. long:声明长整型变量或函数
  7. short:声明短整型变量或函数
  8. signed:声明有符号类型变量或函数
  9. struct:声明结构体变量或函数
  10. union:声明共用体(联合)数据类型
  11. unsigned:声明无符号类型变量或函数
  12. void:声明函数无返回值或无参数,声明无类型指针。
  • 控制语句关键字 (12个)
  1. for:一种循环语句
  2. do:循环语句的循环体
  3. while:循环语句的循环条件
  4. break:跳出当前循环
  5. continue:结束当前循环,开始下一轮循环
  6. if:条件语句
  7. else:条件语句否定分支
  8. goto:无条件跳转语句
  9. switch:用于开关语句
  10. case:开关语句分支
  11. default:开关语句中的“其他”分支
  12. return:子程序返回语句
  • 存储类型关键字 (4个)
  1. auto:声明自动变量,一般不使用
  2. extern:声明变量是在其他文件中声明(也可以看作是引用变量)
  3. register:声明寄存器变量
  4. static:声明静态变量
  • 其他关键字 (4个)
  1. const:声明只读变量
  2. sizeof:计算数据类型长度
  3. typeof:用以给数据类型取别名
  4. volatile:说明变量在程序执行中可被隐含地改变。

3. 变量及赋值

变量就是可以变化的量,而且每一个变量都会有一个名字(标识符)。
变量占据内存中一定的存储单元。使用变量之前必须先定义变量,要区分变量名和变量值两个不同的概念。就好比:住在房间里的客人与房间号是两个不同的概念。
变量定义的一般形式为:数据类型 变量名;
多个类型相同的变量:数据类型 变量名,变量名,变量名…;
在这里插入图片描述
变量名和标识符的命名规范完全相同。

注意:在定义中不允许连续赋值,如int a=b=c=5;是不合法的。

变量的赋值分为两种方式:

  1. 先声明后赋值
  2. 声明的同时赋值

例如:
在这里插入图片描述

4. 基本数据类型

我们在玩游戏的时候,游戏中的角色是有类型的,有敏捷性,力量型,法术型等等。同样在C语言中的数据也是有类型的,C语言中,数据类型可分为:基本数据类型,构造数据类型,指针类型,空类型四大类。如图所示:
在这里插入图片描述
这里我们先给大家讲解基本数据类型中最简单也是最为常用的整型,实型与字符型。
在这里插入图片描述
整型是指不带小数的数字。生活中很多信息适合使用整型数据来表示。比如:人的年龄,班级的人数,书的总页数等等。因此,整型的类型比较多。
在这里插入图片描述
注:int,short int,long int是根据编译环境的不同,所取值范围不同。 其中short int和long int至少是表中所写范围,但是int在表中是以16位编译环境写的取值范围。另外c语言int取值范围在于他占用的字节数,不同的编译器,规定是不一样的。ANSI标准定义int占用两个字节,TC是按照ANSI标准的,他的int是占用2个字节。但是在VC中,一个int是占4个字节。

浮点数据是指带小数的数字。生活中有很多信息适合使用浮点类型数据来表示。比如:人的体重(单位:公斤),商品价格,圆周率等等。
因为精度的不同有分为了三种:
在这里插入图片描述
注:C语言中不存在字符串变量,字符串只能存在字符数组中。

5. 格式化输出语句

格式化输出语句,也可以说是占位输出,是将各种类型的数据按照格式化后的类型以及指定的位置从计算机上显示。这样做的好处,是有利于计算机能够准确的将我们所要的类型数据给我们。

其格式为:printf(“输出格式符”,输出项);

%d:输出一个有符号的十进制整型变量
%f:输出浮点型变量 (默认位6位小数)
%lf:输出双精度变量 (默认位6位小数)
%c:输出字符型变量(声明字符型变量时用单引号)
%s:输出字符串型变量
%o:以八进制整数形式输出
%x:以十六进制数形式输出整数
\n:输出换行符(键盘回车键)
\t: 制表符(键盘tab键)

如果要输出多个变量的并指定变量的位置时候,格式符还可以连用,变量之间需要用逗号隔开,如:
在这里插入图片描述
输出结果为: 整数:10,小数:7.560000,字符:c

注意:格式符的个数要与变量、常量或者表达式的个数一一对应

6. 不可改变的常量

在程序执行过程中,值不发生改变的量称为常量。C语言的常量可以分为直接常量和符号常量

直接常量也成为字面量,是可以直接拿来使用,无需说明的量,比如:

  • 整型常量:13,0,-13
  • 实型常量:13.33,-24.24
  • 字符常量:‘a’,‘M’
  • 字符串常量:“I love money”

下面的代码分蘖打印这四种直接变量:
在这里插入图片描述
在C语言中,可以用一个标识符来表示一个常量,称之为符号常量。符号常量在使用之前必须先定义,其一般形式为:

#define 标识符 常量值

注:这里结尾没有分号。赋值时也没有等于号

符号常量的标识符一般习惯使用大写字母 ,变量的标识符一般习惯使用小写字母,加以区分。下面是一个使用符号常量的小例子:
在这里插入图片描述
运算结果为: 圆周率:3.140000

注意:常量是不可以改变的

7. 自动类型转换

有这么一个此叫做”狸猫换太子“,变量的数据类型就存在这样的情况。数据类型存在自动转换的情况。比如:
在这里插入图片描述
自动转换发生在不同数据类型运算时,在编译的时候自动完成。自动转换遵循的规则就好比小盒子何以放进一个大盒子里面一样。下图表示了类型自动转换的规则。
在这里插入图片描述
char类型数据转换为int类型数据遵循ASCII码中的对应值。如a=97,A=65

注:字节小的可以向字节大的自动转换,但是字节大的不能向字节小的自动转换。

在C语言中自动转换遵循一下规则:

  1. 若参与运算量的类型不同,则先转换成同一种类型,然后进行运算。
  2. 转换按照数据长度增加的方向进行,以保障精度不降低。如int型和long型运算时,先把int型转成long型后再进行运算。
  3. 若两种类型字节数不同,转换成字节数高的类型。
  4. 若两种类型的字节数相同,且一种有符号,一种无符号,则抓换成无符号类型。
  5. 所有的浮点数运算都是以双精度进行的,即使仅仅含有float单精度型运算的表达式,也要先转换为double类型,在做运算。
  6. char型和short型参与运算时,必须先转换成int类型。
  7. 在赋值运算中,赋值号两边的数据类型不同时,赋值号右边的类型将转换为左边的类型。如果右边量的数据类型长度比左边长时,将丢失一部分数据,这样会降低精度。丢失的部分按照四舍五入向前舍入。

8. 强制类型转换

强制类型转换时通过定义类型转换运算来实现的。其一般形式为:

(数据类型)(表达式)

其作用就是把表达式的运算结果强制转换成类型说明符所表示的类型。例如:
在这里插入图片描述
输出结果:
在这里插入图片描述
在使用强制转换时应注意以下问题:

  1. 数据类型和表达式都必须加括号,如把(int)(x/2+y)写成(int)x/2+y则成了把x转换成int类型之后再除2再与y相加了。
  2. 转换后不会改变原数据的类型及变量值。只在本次运算中**临时性转换**。
  3. 强制转换后的运算结果不遵循四舍五入原则。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值