C语言博客分享

本次分享内容为C语言的基础内容,包含一些基础知识如数据类型、符号、数据的输入与输出,还包含一些我认为较难的内容如%f与%lf、自增(自减)运算符、域宽。

一:%f与%lf的区别

1.代表的数据类型不同,*%f代表单精度浮点型数据(float),%lf代表双精度浮点型数据(double)*

2.有效数字类型不同单精度浮点数保证6位,部分7位,双精度浮点数有效数字保证15位,部分16位

3.所能表示数的范围不同单精度浮点的表示范围:-3.40E+38+3.40E+38,双精度浮点的表示范围:-1.79E+308+1.79E+308

二:C语言中的符号如\n等

转义字符 意义 ASCLL码值(十进制)
\a 响铃(BEL) 007
\b 退格(BS),将当前位置移到前一列 008
\f 换页(FF),将当前位置移到下页开头 012
\n 换行(LF),将当前位置移到下一行开头 010
\r 回车(CR),将当前位置移到本行开头 013
\t 水平制表(HT)(跳到下一个TAB位置) 009
\v 垂直制表(VT) 011
\\ 代表一个反斜线字符“\‘ 092
\‘ 代表一个单引号(撇号)字符 039
\“ 代表一个双引号字符 034
\? 代表一个问号 063
\0 空字符(NULL) 000
\ooo 1到3位八进制所代表大的任意字符 三位八进制
\xhh 1到2位十六进制所代表的任意字符 二位十六进制

三:域宽

在C语言中,域宽指的是用于存放输出数据的宽度。当使用格式化输出时,如果域宽大于被打印数据的宽度,数据通常会在域内右对齐。如果输出值的宽度大于域宽,域宽会自动增长以适应输出的数据宽度。域宽通常位于百分号和转换说明符之间。当实际输出宽度小于域宽时,会根据具体要求用空格或者0填充,以确保输出的数据完整地显示在指定的域宽内。此外,域宽也涉及到输出内容的总宽度,包括浮点数的小数点部分。如果域宽小于输出内容的总宽度,数据仍然可以正常输出。

四:数据类型

1.基本类型:

1)整型类型:基本整型(int),短整型(short int),长整型(long int),双长整型(long long int),字符型(char),布尔型(bool)
2)浮点类型:单精度浮点型(float),双精度浮点型(double),复数浮点型(float_complex,double_complex,long long_complex)

2.枚举类型(enum)

3.空类型(void)

4.派生类型:

指针类型(*),数组类型([ ]),结构体类型(struct),共用体类型(union),函数类型

五:数据的输入和输出

printf函数中用到的格式字符

格式字符 说明
d,i 以带符号的十进制形式输出整数(正数不输出符号)
o 以八进制无符号形式输出整数(不输出前导符0)
x,X 以十六进制无符号输出整数(不输出前导符0x),用x则输出十六进制数的a~f时以小写形式输出,用X时,则以大写字母输出
u 以无符号十进制形式输出整数
c 以字符形式输出,只输出一个字符
s 输出字符串
f 以小数形式输出单、双精度数,隐含输出6位小数
e,E 以指数形式输出实数,用e时指数以“e“表示(如1.2e+02),用E时指数以”E“表示(如1.2E+02)
g,G 选用%f或%e格式中输出宽度较短的一种格式,不输出无意义的0。用G时,若以指数形式输出,则指数以大写表示

printf函数中用到的格式附加字符

字符 说明
l 6长整型整数,可加在格式符d、o、x、u前面
m(代表一个正整数) 数据最小宽度
n(代表一个正整数) 对实数,表示输出n位小数;对字符串,代表截取的字符个数
输出的数字或字符在域内向左靠

scanf函数中用到的格式字符

格式字符 说明
d,i 输入有符号的十进制整数
u 输入无符号的十进制整数
o 输入无符号的八进制整数
x,X 输入无符号的十六进制整数(大小写作用相同)
c 输入单个字符
s 输入字符串,将字符串送到一个字符数组中,在输入时以非空白字符开始,以第一个空白字符结束。字符串以串结束标志’\0’作为其最后一个字符
f 输入实数,可以用小数形式或指数形式输入
e,E,g,G 与f作用相同,e与f、g可以互相替换(大小写作用相同)

scanf函数中用到的格式附加字符

字符 说明
l 输入长整型数据(可用%ld,%lo,%lx,%lu)以及double型数据(用%lf或%le)
h 输入短整型数据(可用%hd,%ho,%hx)
域宽 指定输入数据所占宽度(列数),域宽应为正整数
* 本输入项在读入后不赋给相应的变量

六:自增(++)、自减(–)运算符

++i,–i(在使用i之前,先使i的值加(减)1)
i++,i–(在使用i之后,使i的值加(减)1)

希望以上内容能对你有所帮助