在第 2 章之后继续学习。在上一章中,您学习了一些最简单的 C 程序。 第3章将是基于C数据类型的笔记学习。 和之前一样,这篇文章是从重新学习的角度来理解C语言,所以文章只会涉及到需要的数据类型的介绍。 所有类型不会像其他C语言教程那样直接堆起来(在最后的总结中列出,仅供参考)。
学习参考书《C Plus》
1.数据类型1.1、int类型(整数类型)
C语言中最常用的数据类型,可以表示不同的取值范围和正负值。 但必须是整数,可以是正整数,也可以是0,也可以是负整数,只要是整数就行。 现在是 2022 年了,使用的操作系统基本都是 64 位的,所以我不用担心存储整数的问题。
之前,在第 1 章和第 2 章中,使用了声明 int 的操作:
int a,b,c;
int n;
int n2;
int n3;
不过,上面只是声明了变量类型,并没有给变量赋值。 赋值方法可以使用a = 3; 或者后面章节会介绍输入法(scanf())给变量赋值。 C 语言将没有小数点和指数的数字视为整数。 因此,24和-56都是整型常量,但24.0和2.2E1不是整型常量。
1.2、输出(打印)int值
使用()函数打印int类型值时,使用%d表示打印整数的位置。 %d 称为转换规范,它指定应该使用什么格式()来显示一个值。 格式字符串中的每个 %d 与要打印的变量列表中相应的 int 值匹配。 例如,第 2 章程序中的以下 ():
("a 和 bc 的乘积 = %d\n",c);
特别注意的是,如果()中没有参数(即没有为%d提供值),那么程序将打印程序(内存)中的任意值。 例如以下操作:
("a 和 bc 的乘积 = %d\n"); //默认参数
那么输出将是:
a 和 bc 的乘积 = -
1.3、float 和 type(浮点数据类型)
1.1 中引入了整数类型,不包含小数点。 那么带小数点的数据类型就用float和,所以在写程序的时候,按照要求声明一下。 这两种浮点类型的主要区别在于它们的取值范围,如下表所示:
类型
位数
有效数量
数值范围
漂浮
32
6-7
-3.4*10(-38)~3.4*10(38)
64
15-16日
-1.7*10(-308)~1.7*10(308)
C语言程序中声明浮点变量及赋值方法(与之前整数类型的赋值方法类似):
float noah, jonah;
double trouble;
float a=0.1f;
1.4、输出(打印)float和value
与整数类型 int 不同,() 函数使用 %f 转换规范以十进制表示形式打印 float 和类型浮点数。 C语言中,float类型数据默认保留小数点后6位,不足6位的用0补齐。 例子:
int b;
float a=0.1f; //float类型赋值时 补充f
b = 6 ;
printf("a与b的乘积c = %f",a*b);
printf("a与b的乘积c = %.2f",a*b); //补充一句如果觉得默认保留6位小数点看着烦可以使用(%.2f)保留两位小数
2. 方案案例
错误版本:
#include
int main(void)
{
int n = 3;
int m = 2;
float f = 9.0f;
float g = 5.0f;
printf("%d\n", n, m);
printf("%d %d %d\n", n);
printf("%d %d\n", f, g);
return 0;
}
输出结果为:
版本输出错误
其实可以看出问题都出现在最终输出环节(()):第9行变量太多,第10行变量太少,第11行的数据类型为f 和 g 被声明为浮点型。 类型,所以输出时应该使用%f来表示输出的浮点变量值。 所以正确的版本应该是:
#include
int main(void)
{
int n = 3;
int m = 2;
float f = 9.0f;
float g = 5.0f;
printf("%d %d\n", n, m);
printf("%d\n", n);
printf("%f %f\n", f, g);
return 0;
}
输出是:
正确的版本输出
3.字符数据类型-char类型
char类型用于存储字符(例如字母或标点符号),因此char类型的变量的声明方式与其他类型的变量相同。 但实际上,char类型在程序中也被视为整型数据,所以如果在()中使用%d,则答案输出为90。这是因为大写的Z在ASCII码中存储为十进制的90 。 这很有趣。 如果读者有兴趣,可以尝试更多的输出方法或者声明方法。 例如,如果将 char 声明为 90 并尝试使用 %c 进行输出,则结果将为 Z。
char KingZsf;
char wca, ltcb;
char KingZsf = 'Z'; //通过初始化把字母A赋给KingZsf
printf("%c", KingZsf); //输出结果为 Z
printf("%d", KingZsf); //输出结果为 90
4. 总结
添加一些内容以便于记忆,包括第2章中没有详细介绍的\n(字符转义序列)
C语言数据类型关键字
关键字最初由 K&R 给出
C90标准添加的关键字
C99标准添加的关键字
整数
_Bool(布尔类型)
短的
空白
(复数)
长的
(虚数)
字符
漂浮
字符转义序列(粗体字体更常用)
姓名
转义序列
姓名
转义序列
换行符
\n
后备角色
\b
水平制表符
\t
垂直制表符
\v
撇号
\'
换页
\F
双引号
\"
问号
回车
\r
报警(响铃)符号
\A
反斜杠
\\
本章主要介绍程序的数据类型(整数、浮点和字符)。 对知识点和很多细节感兴趣的读者可以参考C语言参考书。 很多概念没有写详细。
如果有什么不足或者问题,欢迎大家指正。 也希望非IT专业的同学也能感受到C语言的魅力。 如果对您有帮助,请点赞并收藏!
[1]《C+》