运算符种类: 1.算术运算符:+(加),-(减),*(乘),/(除),++(自加),--(自减),%(求模,可理解为求余数) 2.关系运算符:>(大于),<(小于)==(等于),<=(小于等于),>=(大于等于),!=(不等于) 3.逻辑运算符:&&(逻辑与),||(逻辑或),!(逻辑非) 4.赋值运算符:= 5.指针运算符:*(解引用,可理解为取内容),&(取地址) 6.条件运算符:?: 7.位操作运算符:&(按位与),|(按位或),!(按位非),^(按位异或),<<(左移),>>(右移) 8.逗号运算符:,(在一个括号内使用逗号,从左到右进行运算,赋值) 运算符的优先级 运算符重点解析 (一)算术运算符(+,-,*,/,%,++,--) 1.易混淆点,前置和后置运算 后置: i++ : 先引用,后增加 前置:++i : 先增加,再引用 2.易错点,%求模运算符在C语言中只能进行整数求模,而且分母不能为0 (二)关系运算符(>,<,>=,<=,!=,==) 跟数学符号差不多,要注意区分赋值符号=和关系运算符的等于==就好了 (三)逻辑运算符(||,&&,!) 区分:逻辑与和逻辑或是判断两端真假,按位与按位或是进行二进制展开运算 难点:逻辑运算符的短路性(与之相对的是,按位或 & 和按位与 | 并没有短路性) 设有式子a,b; a&&b如果a的式子不成立,则b就不进行判断了,同理,当a||b的a式子成立时,b就不判断了,!没什么好说的就是取“非”的意思 (四)指针运算符(*,&) 没什么好说的,&取地址,*取内容 (五)条件运算符(?:) 设有式子a,b,c 则a?b:c的意思就是,如果a成立,执行b,如果a不成立执行c (六)位操作运算符(&,|,^,<<,>>) <<,>>左移和右移,移操作的左边是被操作的数,右边是要移动 多少位数,如a=4;a<<1表示左移一位,最高位舍弃,最后位补0 如有错误 欢迎指正。(@_@;)