Bootstrap

C语言运算符

目录

运算符

算术运算符

单目运算符

说明: ++ – +(正) -(负) *(解引用运算符,后面讲)

++a与**a++**的区别

  • int a = 1,int x = ++a; : ++ 在前,先自加1,后运算

  • int a = 1,int x = a++; : ++ 在后,先运算,后自加1

    案例:

请添加图片描述

总结:

 分析上面的案例,我们发现,不管是 ++ 在前,还是 ++ 在后,计算数自身都会+1。区别在于运算的结果不一样。 ++ 在前,先自加1,后运算; ++ 在后,先运算,后自加1。

双目运算符

说明: + - * / %

举例:

#include <stdio.h>
int main()
{
printf(3/2); // 1,为什么不是1.5,因为是整型的运算,会直接舍弃掉小数部分
printf(3*1.0/2); // 1.5 为什么是1.5? 3*1.0:转换为double
printf(10%3);// 1 求模运算
printf(10.0%3);// error 求模运算是针对整数进行的
int a = 10;
printf(a*1.0);
return 0;
}

注意:

  1. 两个整数相除的结果是整数,小数部分被舍弃。要想其结果是实数,可在分子*1.0(隐式类型转换)
  2. 求模运算(取余运算)左右两边的操作数都必须是整型。如果是类似于3.0这样的数,是错误的。
关系运算符

说明: >、< 、>= 、<=、 !=、 ==

案例:

请添加图片描述

什么是表达式?

表达式就是表达某种意思的式子。在C语言中,表达式指的是 运算符 连接 操作数 (变量|常量…)的式子。

注意:

 由关系运算符构成的表达式称为关系表达式,关系表达式的值为boolean(布尔值)

  • 非0 :关系成立,为真

  • 0 :关系不成立,为假

逻辑运算符

说明: &&(与) ||(或) !(非)

  • && :逻辑与(且),符号两边的操作数都为真,结果才为真。举例: ((5>4)&&(5-4)>1) ,结果 0

  • || :逻辑或(或),符号两边的操作数只有有一个为真,结果就为真。举例: ((5>4)||(5-4)>1) ,结果 1

  • ! :逻辑反(取反),取反,非0为真,举例: !(!(5>4)) ,结果 1

惰性运算

所谓的惰性运算,就是减少运算次数。

  • 短路与: && 两边的操作数,只要左边不成立 0 ,直接返回假,不再校验右边。

  • 短路或: || 两边的操作数,只要左边成立 1 ,直接返回真,不再校验右边。

扩展

ISO-8859-1:西欧编码,一般遇到直接改编码。针对文件内容。

GBK:国标,中国标准编码/字符库,收录了大量的汉字+中文符号。针对文件内容。

UTF-8:全球标准,几乎收录了全球的各种字符集,包括GBK包含的常用汉字以及中文符号。针对文件内容。

ASCII:字符集,C语言字符就是以ASCII码进行存储。针对程序内部数据。

;