C语言浅学-数据类型总结
在上一篇博客中我们详细介绍了C语言中的基础数据类型和相关转换说明的原理剖析,那么这一篇博客对数据类型的具体使用作简单介绍和总结。
使用数据类型
我们在编写程序的时候,应当注意合理选择所需的变量及其类型,通常来说,使用int或者float类型来选择数字,char类型表示字符。
Tip:使用变量之前必须先声明,且选择有意义的变量名,若是需要初始化变量,应当与类型匹配。
声明(初始化)方式:
1 | int apple = 3; /*正确*/ |
若是我们使用一个类型的数值初始化给不同类型的变量的时候,编译器会首先把值转换成与变量匹配的类型,会导致数据错误以及丢失。
例如:
1 | int cost = 12.99; /*用double类型值初始化整型变量*/ |
上述程序cost的值是12,第二个声明会损失一些精度,因为在C语言中只能保证单精度浮点型前6位的精度,一般来说编译器会对这样的初始化产生警报。
参数和陷阱
对于printf()函数的使用主要是需要注意函数中的参数,在格式化字符串中有多少个转换说明,就说明后面需要几个参数,我们需要做的就是确保转换说明数量、类型与后面参数的数量、类型是否一致。
但是这对于printf()和scanf()函数来说并不起作用,因为这两个函数的参数个数是可变的。
在下一篇博客中会对printf()和scanf()这两个函数进行具体的分析,这里就简单的做个说明:
1 |
|
这是基本会出现的多数问题,在编译器中大部分也会有提醒,然而C标准对此并未作出要求,若是程序正常运行,这些细小的错误会很难察觉。
转义序列
对于转义序列来说,我们主要可以看看退格(\b)、水平制表符(\t)、回车(\r)的工作方式。
1 |
|
这就是一个简单的薪资询问系统(简单交互),其中含有许多的转义序列。
刷新输出
printf()函数在什么时候会把输出发送到屏幕上呢?
最初,printf()会把内容发送到缓冲区的中间存储区域,然后缓冲区的内容再不断被发送到屏幕上。在C标准中规定了什么时候把缓冲区的内容发送到屏幕:
1.缓冲区满
2.遇到换行字符
3.需要输入的时候
Tip:还有一种刷新缓冲区的方法就是使用fflush()函数。
总结
C 有多种的数据类型。基本数据类型分为两大类:整数类型和浮点数类型。通过为类型分配的储存量以及是有符号还是无符号,区分不同的整数类型。最小的整数类型是char,因实现不同,可以是有符号的char或无符号的char,即unsigned char或signed char。但是,通常用char类型表示小整数时才这样显示说明。其他整数类型有short、int、long和long long类型。C规定,后面的类型不能小于前面的类型。上述都是有符号类型,但也可以使用unsigned关键字创建相应的无符号类型:unsigned short、unsigned int、unsigned long和unsigned long long。或者,在类型名前加上signed修饰符显式表明该类型是有符号类型。最后,_Bool类型是一种无符号类型,可储存0或1,分别代表false和true。
下一篇博客将对字符串和printf()、scanf()两个函数做详细解析。