首页 > 代码库 > 从"图夫"到"码农"的第三课

从"图夫"到"码农"的第三课

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);

 逗号运算式的结果是最后一个表达式的结果

 特点:逗号运算式虽然结果是只取最后一个表达式的结果,但是前面的表达式也都会执行

 

从"图夫"到"码农"的第三课