*:抑制输入
%4c:输入4个字符
%4S:忽略前导空格,
eg:char s[100];
scanf("%4s",s)
数组名代表数组的开始地址,不需要加&
- 左对齐标志,缺省时右对齐。
+ 正数输出带正号。
# 对八进制数前加0;对十六进制数前加0x;对浮点数总显示小数点。
w 指定数据输出的宽度。若宽度为*,这时域宽大小由下一个输出项的整数值指出。
例如:printf("%*c",10, ’*’) 则:等同于%10c,即先输出9个空格,再输出一个*。
或printf("%5c","***")则等同先输出两个空格,再输出三个“*”
int i = 1234; long j = 1234567L;
printf("%d,%+6d, %-6d, %ld\n", i, i, i, j); 将输出: 1234, +1234,1234 ,1234567
int k = 045; long p = -1L;
printf("%#o, %4o, %6lo\n", k, k, p);
printf("%#x, %4x, %6lX\n", k, k, p);
将输出: 045, 45,37777777777 (-1的补码) 0x25, 25,FFFFFFFF
printf("%d,%4u,%lu\n", 4294967295u, 4294967295u, -1);
将输出: -1, 4294967295,4294967295 (231-1)
* 星号(赋值抑制符),跳过一个输入数据项。
W 指定输入数据的数字符个数。
H 输入short型整数。
l , L输入long型整数或long double型。
+=,*=之类的符合运算符级别都一样
关系运算符的结合方向从左至右:i=1,j=2,k=3;
则k>j>i=0...(因为k>j=1,1=i)
逻辑运算符排序高低:赋值——>&&和||——>关系------>算术——>!
eg:2>1&&4&&7<3+!0
等价于:((2>1)&&4)&&(7<(3+!0))
回忆一下久远的三目运算符:x>y?x:y;x大于y吗?若真,返回x;若假,返回y.
转换会从低向高转换,如int--->float(字节越多级别越高)。
“,”作用:1.从左到右依次计算各个表达式的值
2. 最后一个表达式的值作为整个逗号表达式运算的结果
(喜闻乐见的)sizeof的作用:给出运算对象所占的字节数
break:跳出包含之的最小循环