"#"的意义
预处理,在编译时进行内容代替
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里的输出
\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
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]
。