int a = 2.36
这条语句,会直接给a
赋值2,而不会进行四舍五入,原理是直接截断小数点后面的数字。float b = 3.1415926536
,C中保证了float类型的前6位精度,会损失精度,应该使用double来进行赋值。i_
当前缀,unsigned short会使用us_
当前缀。printf()
和scan()
不起做用,由于这两个函数的参数是可变的。#include<stdio.h> int D14_1_badcount(void) { int n = 4; int m = 5; float f = 7.0f; float g = 8.0f; printf("%d\n", n, m); printf("%d %d %d\n", n); printf("%d %d\n", f, g); return 0; }
运行结果: git
#include<stdio.h> #pragma warning(disable:4996) int D14_2_escape(void) { float salary; printf("\aEnter your desired monthly salary:"); printf("$___________\b\b\b\b\b\b\b\b"); scanf("%f", &salary); printf("\n\t$%.2f a month is %0.2f a year", salary, salary * 12.0); printf("\rGee!\n"); return 0; }
运行结果: github
printf
何时把输出发送到屏幕呢?从缓冲区把数据发送到屏幕或者文件被称为刷新缓冲区。微信
scanf
函数也不会刷新缓冲区\n
也是一种习惯。小结:
(1)C语言支持混合数据类型表达式,可是会进行自动类型转换。
(2)_Bool是一种无符号类型;编辑器