c的基本语法(课上笔记)

"#"的意义

预处理,在编译时进行内容代替

scanf

对于scanf("");
引号中内容为必须输入的内容。
当输入多个数据时,默认输入的数据间以空格或者回车分开。
对于int,直接相除为向下取整
14.0f格式即表示(float)14.0

定义常量的方法

#define CSP o
表示将CSP定义为o(CSP为宏,o为内容)
const int i=常量
ps:常量只有初始化的时候能赋值,在过程中无法赋值。

标识符

标识符的名字只能由字母,_和数字组成,其中数字和下划线最好不在排头。

printf

%8d

在引号中,%8d表示占8位宽度。

%.8f%.8lf

%.8f%.8lf表示取前8位小数。%d在宽度不止8位时会忽略该限制,当小于8位时会在前自动补0.

%.8e

会显示位指数形式的浮点数,并且是显示八位小数宽度。

%.8g

包含了四舍五入,会自动确认小数精度输出,其中整数小数位数加起来不会超过8,且会自动去掉末位的0.

注意区分宽度和精度!!!

补充:printf%。8d8位宽度,不够在前补0

补充:scanf("%d/ %d",&a,&b); 允许数字间出现空格。

转义符 \

在printf里的输出

\n 表示回车换行

\a 产生一声鸣响

\b 光标会回退一个字符,可能会覆盖先前内容

\t 水平制表符,通常按照8位为标准,不足8位会补齐空格到8位

\\ 在printf的引号中,表示输出\

\"" 输出双引号

%% 输出%

输入函数

从第一个非空白字符(空白字符包含空格符,水平和垂直制表符,换页符和换行符)开始

scanf的输入变量前必须包含地址符&

%i

根据你输入的二进制,八进制,十六进制自动识别

点击查看代码
int num;
char ch;
//printf("input num and cj:");
scanf("%i%c",&num,&ch);
printf("num=%d\nch=%c\n",num,ch);

输入

点击查看代码
0x12

输出

点击查看代码
num=18
ch=10
空格的ASCLL码为32,回车为10

012 表示八进制的12

0x16 表示十六进制的12

如果写成scanf(%d\n",&a);会无法结束读入
scanf("%4d",&a);会自动读入4位,例如读入0009实际上是读入9.
scanf在遇到与标识符不一的内容会退回缓存区,将已经读入的数赋给当前变量。
对于两条scanf语句,如果前一句输入的是int,那么缓存区会被退入空格,那么下一句如果入读字符的话需要写成scanf(" %c",&c);
并且读入字符数组不需要&
例如scanf("%s",str);此处是因为str表示的是str第一个元素的地址,对应str[0]

ps:字符数组读入时遇到空格会自动结束,但遇到回车不会,且字符数组中不能包含空格。
posted @   WE-R  阅读(57)  评论(2编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示