1.printf函数的几个要点
printf函数中所有的输出都是右对齐的,除非在%后面添加负号,则表示左对齐
#include<stdio.h>
int main()
{
int num = 10;
int nums = 100;
float f = 1000.2333333333;
printf("%3d\n", nums);//%3d表示输出的总宽度至少为3个字符
printf("%3d\n", num);
printf("%-3d\n", num);
// 5表示输出的总宽度至少为5个字符,如果数值宽度不足5个字符,会在前面补空格。
// .2 表示小数点后保留2位小数
printf("%5.2f\n", f);
return 0;
}
2.scanf函数的重要的点
【注】scanf函数是行缓冲区
scanf函数读取整数、浮点数、字符串类型时会忽略'\n'和空格等字符。
比如输入20按下回车键,这时程序缓冲区中真正意义上是20'\n'而且你读的数据刚好是非单字符类型也就是char类型,那么scanf会把20读取走,而缓冲区残留了'\n';(坑!!!)
【注】若上面数据是非char类型而下面紧挨着是char类型读取数据,scanf数据残留的'\n'要及时清理,只有这样才不会干扰char类型数据的读取---------->flush(stdin);(特别提醒:flush(stdin)清空标准输出缓冲区并不是C标准,因此部分编译器没有支持这个)因此最好使用getchar()函数;
多种类型读取数据方法
非char类型和char类型直接添加一个空格主动跳过
当然都主动把每一个数据类型中间用空格,也行
3.运算符优先级
算数运算符:+ - * / %(取模) (结合方向:左到右)
关系运算符:> < == >= <= != (结合方向:左到右)
赋值运算符:= /= *= += %= <<= >>= &= ^= |= (结合方向:右到左)
单目运算符:-(负号运算符) ~ ++ -- *(取值运算符) &(取地址运算符) !(逻辑非运算符) (结合方向:右到左)
优先级比较:同一优先级下,运算次序由结合方向决定
!> 算数运算符 > 关系运算符 > && > || > 赋值运算符 (常用)