1.printf 的详细分析
%d:输出int类型
%md:m代表这个整数占多少位,但是还是输出int
不足部分以空格补齐
如果m是负数,那么空格在后面补齐
如果实际的位数>=m,那么按原样输出
%0md:(可能会用,重点)
m代表这个整数占多少位,而且输出的还是int
不足部分以0补齐
如果实际位数 >= m ,那么还是按原样输出
前面不能加负号
%.nf:(重点)
n代表输出几位小数,但是还是输出float
代表保留小数点后几位,然后保留的最后一位会根据它的下一位做四舍五入
例: 10.3333
如果用%.2f输出,会输出 10.33
10.3352
如果用%.2f输出,会输出 10.34
%m.nf:(非重点,了解有这回事)
m代表这个小数一共占用几列,n代表保留几位小数
不足部分以空格补齐
如果实际位数或者保留小数点后几位的位数 大于或者等于 m,那么以实际位数或者保留小数后几位的位数输出
2.转义字符
比如说:输出一个n,然后前面加一个\,就改变了n原来的意思,变成了换行,再比如说本来输出一个d,但是在前面加一个%,然后就改变了d原来的意思,变成了挖一个int类型的坑
那么像这样的\和%,可以改变某个字母原来的意思的符号就叫转义符
\\:代表输出一个\
\":代表输出一个双引号
\‘:代表输出一个单引号
\t:代表水平制表符
简单来说就是多加几个空格
\n:代表换行
%d:占位符,占用一个int类型
%ld:占用一个long类型
%f:占用一个float类型
%lf:占用一个double类型
%c:占用一个char类型
%u:占用一个unsigned int类型
%lu:占用一个unsigned long类型
unsigned int占用4个字节(能保存的正数范围更大)
unsigned long占用8个字节 (能保存的正数范围更大)
%%:代表输出一个%
3.scanf函数:
接收用户的输入
语法:
scanf("格式化控制符",地址列表);
例:
int num;
scanf("%d",&num);//代表接收用户输入一个整数,把这个整数赋值到num所在的空间
如果要接收字符呢???
char ch;
scanf("%c",&ch);
千万要记住:scanf的格式化控制符后面不要加\n
scanf函数有一个特点:
它叫阻塞式函数
意思就是:当程序执行到它这一句的时候,会暂时停止,不会继续往下执行,直到用户输入完才会继续往下执行
运行原理:
首先,scanf在内存中有个位置,叫缓冲区,里面是保存所有用户输入的数据的
用scanf接收用户输入的时候:
1)先去缓冲区里面找有没有合适的数据,如果有,则直接把缓冲区的这个数据赋值给你的变量(意味着不要用户输入了)
2)如果没有,才会让用户进行输入,输入以后,数据先放在缓冲区
3)然后再从这个缓冲区里面找数据
注意:如果要接收的是数字,但是输入的是字符,那么会忽略(不给那个变量赋值)
以后如果要接收一个字符的话,一定要记得在前面加空格(会过滤掉所有的空格和回车)
清空缓冲区:rewind(stdin)
4.算术运算符:
+: 就是把两个数据相加,得到和
-: 就是把两个数据相减,得到差
*: 就是把两个数据相乘,得到积
/: 就是把两个数据相除,得到商
%: 就是把两个数据相除,得到余数
算术运算式:
就是用算术运算符组成的式子就叫算术运算式
算术运算符的优先级:
先算乘除,后加减,如果同样就从左往右依次运算,有括号的先算括号里面的
5.类型转换:
就是不同类型的数据进行运算,就会把某一个类型转换成你那个类型
隐式转换:也叫自动转换,就是编译器自动帮你判断应该转换成什么类型
例: int num = 3.333333;
显示转换:就是由程序员告诉编译器应该转换成什么类型
例: int num = (int)3.33333;
int num = (float)3.333333; //还是3
理解:
如果类型不同,然后参与运算,那么小类型会转换成大类型
比如说:int和float或者double参与运算,那么int会转换为float或者double
6.复合运算符:
由一个算术运算符和一个赋值运算符组成的符号,叫复合运算符
复合运算符列表:
+=: 在原来的值的基础上加一个数
-=: 在原来的值的基础上减一个数
*=: 在原来的值的基础上乘一个数
/=: 在原来的值的基础上除一个数
%=: 在原来的值的基础上取余一个数
7.自增自减运算符
自增(++):就是给自己的值再加1
自减(--):就是给自己的值减1
++(--)可以放在前面,也可以放在后面,效果都是一样,都是会给自身+1(-1)
前缀++(--):会先自增(自减),后用自增(自减)后的值参与运算
后缀++(--):会先用原来的值参与运算,再自增(自减)
8.赋值运算符:=
就是把=右边的运算结果,赋值给左边的变量
9.逗号运算符:就是,
语法:
(表达式1,表达式2,表达式3);
逗号运算式的结果是最后一个表达式的结果
特点:逗号运算式虽然结果是只取最后一个表达式的结果,但是前面的表达式也都会执行