true是所有非0数,包括负数。只有0才是false
在强制类型转换的过程中,是直接截掉而不是四舍五入。(比如b=1.8,(int)b是1)
define是完全替换,因此define定义的时候最好加好全部括号。
位运算符的优先级没有算数运算符高。
位运算符左移是变大(按照二进制) eg:a=3 a<<2 a左移两位,变成3*2^2=12
赋值的过程中 a=b=5,这种是a和b都被赋值为5,多位同时赋值。
字符串数组 char str[100]这类的,输入的时候用%s,不用&,
double的输入用%lf,输出用%f,float都是%f。注意double一定要%lf,注意!不然可能不会报错但是读取无效
long long的输入输出都是%lld
特殊数据类型,比如12:30:08这种数据,需要读取里面的三个数字,那么scanf("%d:%d:%d",&a,&b,&c),会在输入数据中自动跳过这些内容。
scanf在%c下可以读取到空格和换行,但如果scanf("%c %c",&a,&b).b可能无法读取空格
printf("%4d",a),这个是保证a的输出占用4位字符,也就相当于,右对齐(位数不满从右边开始占位,满了以后可以正常占位输出的,比如给4位实际上5位,那么就是从头开始五位)