初识操作符
操作符:
算数操作符:+ - * / %
c语言中除法是等到的结果是“商”,
从根上讲除号两端都是整形,得出来的结果都是整数
除号两端其中一个是小数,就是执行小数除法
所以在写代码中想要执行小数除法必须两端需要有一个数是小数,得出来的数才是小数
在c语言中%是取模(余),所以这里的9除于2打印出来的值就是1
移位操作符:<< >>
左移操作符,移动的是二进制位(左移最后一位默认补0)
e=2
2的二进制是10,在这里e是整型,一个整型是4个字节,一个字节是8个比特位,
这里的2的二进制序列为是00000000000000000000000000000010
想左移动移位就是00000000000000000000000000000100,就是2的2次幂也就是4,
位操作符:
&按位与,|按位或,^按位异或
赋值操作符:
= += -= *= /=
c语言中g=g+3可以直接写成g+=3,得出来的答案都是6
单目操作符
只有一个操作数的操作符
!是逻辑反操作,意思就是让真变假,让假变真
sizeof:计算类型或者变量的大小
~:按(二进制位)位取反,把所有二进制位的中的数字,1变成0,0变成1()
这里的0不应该是1吗,因为整数在内存中存储的是补码(一个整数的二进制表示有3种(原码、反码、补码))
负数的计算方式(原码,反码,补码)
例:-1
10000000000000000000000000000001(原码)原码到反码就是符号位不变,其他按位取反
11111111111111111111111111111110(反码)反码的二进制位加一到补码
11111111111111111111111111111111(补码)
因为这里打印的是10进制的数字,所以得出来的答案是-1
正整数的原码,补码,反码相同
前置,后置++,--
这里的++或者--是先算法后使用,所以a得出来的答案是11
后置++或者--是先使用后算法
(类型)强制类型转换
这里的3.14是doulue类型,用括号括起来类型进行强制转换
c语言中的大于小于等于不等于是这样表达的<<,>> <=,>=,==,!=
逻辑操作符
&&逻辑与:相对于并且的关系,用于判断真假,其中有一方为假得出来的就是假,两方为真得出来的就是真
||或:相当于或者的关系,只要有一方是真,得出来的都为真
条件操作符(三目操作符)
exp1?exp2:exp3
exp1成立,exp2计算,整个表达式的结构是:exp2的结果
exp1不成立,exp3计算,整个表达式的结构是:exp3的结果
逗号表达式
用逗号隔开的表达式
逗号表达式是从左向右依次计算的,整个表达式的结果是最后一个结果
[]是下标引用操作符
()是函数调用操作符
c语言常见的关键字
1.c语言提供的,不可以自行创建关键字
2.关键字不能做变量名
auto是自动的,每个局部变量都是auto修饰的(新的c语言语法中也有其他用法)
exturn是申明外部符号的
eregister寄存器关键字( 大量频繁被使用的数据,建议放在寄存器中,提升效率)
signed是有符号的
unsigned是无符号的
static:静态的
viod是无
define和include是预处理指令