数据类型
掌握C语言的数据类型,是开启高效、可靠编程之旅的第一步。数据类型不仅决定了数据在内存中的存储格式和取值范围,更是程序逻辑正确性的基石。本文将带你系统学习C语言数据类型的核心知识,主要内容包括:
- 基础数据类型详解:深入剖析字符型(char)、整型(int)、浮点型(float/double)和布尔类型(_Bool/bool)的定义、用法与内存表示。
- 类型修饰符的作用:讲解short、long、signed、unsigned等修饰符如何精细控制数据的长度和符号,以适应不同的应用场景。
- ASCII与转义字符应用:揭示字符在计算机中的本质(ASCII码),并掌握转义字符的妙用,让你在字符串和字符处理中游刃有余。
通过本文,你将建立起对C语言数据类型全面而清晰的理解,为后续的变量、运算符和复杂程序设计打下坚实基础。
1.数据类型
1.1 字符型
字符的英文单词是character,在C语言中使用char表示字符类型。
1char//character23charch;//使用char创建字符变量C语言中,字符是使用一对单引号括起来的,比如:‘x’、‘a’、‘w’,这些字符类型就是char。
1.2 整型
整数的英文单词是integer,在C语言中使用int表示整型类型。
1int23intnum;//使用int创建整型变量在C语言中,100、20、35这些整数的类型就是int。
1.3 浮点型
1float//单精度浮点型2double//双精度浮点型34floatnuml;//使用float创建变量5doublenum2;//使用double创建变量在C语言中,3.14、5.5这些小数类型默认是double类型,3.14f这种写法表示float类型。
1.4布尔类型
C语言在C89/C90时期并没有为布尔值单独设置一个类型,使用整数0表示假(false),非零值表示真。
后来在C99标准中也引入了布尔类型,是专门表示真假的。
1_Bool布尔类型变量的取值是:true或者false,这两个符号是定义在<stdbool.h>头文件中的。
1#define bool_Bool23#define false04#define true1布尔类型的使用,一般得包含头文件<stdbool.h>
1#include<stdbool.h>23_Boolflag=true;4if(flag)5printf("I like C\n");一直到C23这个标准,才把bool、true、false定为C语言的关键字,使用bool类型,不再需要依赖<stdbool.h>这个头文件了。
2.类型修饰符
有前⾯介绍的数据类型,其实已经能解决⼀部分问题,但是在真实的开发过程中,还是不够,为了让
内置类型提供更精细的数据表示能力,C语言中,还引入了类型修饰符:
1//和内存长度有关的2short3long4//和符号相关的5signed6unsigned2.1 short和long
short 和long是和内存长度有关的两个类型修饰符也是用来修饰整型类型。
1int//标准的整型23//修饰整型4short[int]//短整型5long[int]//长的整型6longlong[int]//长的整型7// []中的内容是可以省略的89//修饰浮点型10longdouble//C99中引入了int ,长度是4个字节,short int 类型的长度是2个字节。
C语⾔标准规定long int 的⻓度是⼤于等于int 的⻓度的。
要想知道每个数据的类型的⻓度,我们可以使⽤sizeof来计算,sizeof是C语言的一个操作符,sizeof可以算出⼀个数据类型的⻓度,单位是字节,使⽤的⽅法就是:
1sizeof(type)2.2 signed和unsigned
signed和unsigned是和符号相关的两个类型修饰符,专门修饰字符型和整型类型的。
signed关键字,表⽰⼀个类型带有正负号,可以表⽰正整数、负整数和0;
unsigned 关键字,表⽰该类型不带有正负号,只能表⽰零和正整数。
3.ASCII字符集和转义字符
3.1 ASCII码表
参考:https://zh.cppreference.com/w/cpp/language/ascii
3.2.1 转义字符
| 转义字符 | 解释 |
|---|---|
| \? | 在书写连续多个问号时使⽤,防⽌他们被解析成三字⺟词,在新的编译器上已无法验证。 |
| \’ | ⽤于表⽰字符常量’ |
| \" | 用于表⽰⼀个字符串内部的双引号 |
| \ | ⽤于表⽰⼀个反斜杠,防⽌它被解释为⼀个转义序列符。 |
| \a | 警报,这会使得终端发出警报声或出现闪烁,或者两者同时发⽣。 |
| \b | 退格键,光标回退⼀个字符,但不删除字符。 |
| \n | 换行符,⼀般使⽤在屏幕上打印信息时,实现换⾏的效果 |
| \r | 回车符,光标移到同⼀⾏的开头。 |
| \t | 制表符,光标移到下⼀个⽔平制表位,通常是下⼀个4/8的倍数。 |
3.2.2数字转义序列
| 转义序列 | 解释 |
|---|---|
| \ddd | ddd表⽰1~3个八进制的数字。 如: \130 表⽰’X’ |
| \xdd | dd表示两个十六进制数字。 如:\x30 表示字符’0’ |