1.基础理论知识
- 局部变量放在内存栈区,全局变量放在内存静态区
- 布尔类型要包含<stdbool>
- %操作符不能是小数 例:
float f=12.5%10; - printf("%s",n) --->有两个参数,一个占位符,关系为n+1
- printf(%5d",123456) --->正数右对齐,负数(-5)左对齐;多与全部输出,少的补空格。 输出结果为123456
%md (m>0)
表示这个占位符的宽度至少为m位。如果不满m位,对应的值的前面会添加空格(右对齐)。如果超过m位,正常输出就行,m是最少输出m位。
- if语句中:0表示假,非零表示真
- sizeof():字节个数 计入 \0 strlen() :字符个数,不计 \0
2.自加自减
2.1经典例题:
b=a++ 先把a赋值给b,a的值再加1.
#include <stdio.h>
int main()
{
int a, b, c;
a = 5;
c = ++a; //a的值加一,再赋给c a=6,c=6
b = ++c, c++, ++a, a++; //c的值加一再赋给b,b=7,c的值加了两次 c=8,a的值加了3次 a=8
b += a++ + c; //a=8先加上c=8再加b=7 最后a再加一 a=9
printf("a = %d b = %d c = %d\n:", a, b, c);
return 0;
}
2.2与逻辑运算符结合
c语言逻辑运算符特点:从左到右
对于&&:左边操作数结果为假,右边不再执行
对于|| :左边结果为真,右边不再执行
int i = 0,a = 0, b = 2, c = 3, d = 4;
i = (a++ && ++b && d++);
// 0 && ++b --> 0 , 后面不再执行
//i = 0, a = 1, b = 2, c = 3, d = 4
int i=0, a=0, b=2, c=3, d=4;
i= a++ || ++b || d++;
// 0||3 --> 为真,则发生短路,d++不计算,d=4
i= 1, a=1,b=3,c=3,d=4