接着上一章,我们该继续说剩下的操作符了
六.关系操作符 > >= < <= != ==
> >= < <=
这些我们学数学应该很常见
分别是大于、大于等于、小于、小于等于
这些经常用在while和if语句中,并且这些操作符产生的结果值是一个整型。
如果条件符合,结果是真的,操作符表达结果是1.
如果条件不符合。结果是假,则操作符表达结果是0.
我们可以写以下程序验证。
int a = 1, b = 2, c = 3, d = 3;
printf("%d\n", a > b);
printf("%d\n", a < b);
printf("%d\n", c >= d);
printf("%d\n", c <= d);
我们看到程序输出结果如下:
这很好验证了我们的说法。
由于a<b,所以第一个式子a>b不符合条件,结果是假,为0.
同理,下面三个式子也是如此。
!= ==
!=这个符号我们读作不等于,在我们数学中,不等于是用≠这个表示,在c语言中,不等于则用!=表示。
其实很好理解,没什么可以多说的
比如
int a=1,b=2;
那么a!=b.
在写程序中也常作为一个判断语句。
==
这个是和上面那个相反,是一个进行比较两个数是否相等的操作符。
但是一切记一点,千万不要和=这个号混淆。
你可以理解为==是进行一个比较,比较两个数是否相等,和上面讲的一样,若结果为真则为1,若结果为假则是0.
而=是一个赋值操作符,是将一个值赋值给变量。
来写一个例子对比两个的区别
首先定义一个变量a
eg1:
int a=2;
printf("%d",a==3);
我们看输出结果:
通过这个结果我们可以知道,==是先将2和3比较是否相等,结果为不等,所以最后的输出结果是0.
和我们刚才所说的一致。
eg2:
int a=2;
prirntf("%d",a=3);
我们来看输出结果:
可以发现结果是3.
这是因为我们等于号(=)是赋值操作符。
我们将输出的时候将3赋值给了a,所以最后输出a时是3.
关系操作符至此结束。
七.逻辑操作符 && ||
大家还记得上一节讲的 & 和 | 吗?分别是按位与,按位或的意思。
那这个 && 和 || 是成对了,和那个有什么区别呢?
&& 和 || 这两个意思是与,或。
看出区别了吧,前面的是按位与和按位或,这个少了按位这两个字。
以前那个是按二进制位进行与和或操作的。
今天这个 && 和 || 是直接进行与,或操作。
我来这么表述一下看下是否明白
&&
两个不为0的数进行&&操作结果是1.
两个数中其中有一个数或两个数都是0,结果为0.
||
只要两个数都不是0,那么这两个数进行 || 的结果就是1
所以只有当两个数都是0的时候,那这两个数进行||的结果才是0.
我们可以举例理解一下
输入以下代码:
int a=1,b=2,c=0,d=0;
printf("%d\n",a&&b);
printf("%d\n",a&&c);
printf("%d\n",c&&d);
printf("%d\n",a||b);
printf("%d\n",a||c);
printf("%d\n",c||d);
很简单是不是?
看第一行,由于a和b都是不为0的数,所以&&的结果是1
再看第二行和第三行:
由于两个数中分别有0的存在(第2行有一个0,第3行有2个0),所以输出结果是0
看第四、五行:
由于两个数都不是0,所以||结果为1
最后一行两个数都是0,所以||结果是0。
逻辑操作符至此结束。
八.条件操作符(三目操作符)
正如其名,有三个操作数。
格式如下:
exp1?exp2:exp3
执行流程如下:
先判断exp1是真还是假
若结果是真,则执行exp2,不执行exp3.
若结果为假,则执行exp3,不执行exp2. 举例说明:
int a=1,b=2;
int c=3,d=4;
printf("%d",a<b?c:d);
我们依据流程
先判断a<b,结果为真
执行c,结果为3
看输出结果:
符合我们的猜想。
条件操作符至此结束。
九、逗号表达式
格式如下:
exp1,exp2,exp3,.....expN
逗号表达式
表达式从左向右依次计算,整个表达式的结果是最后一个表达式的结果
举例说明:
int a=3;
int b=20;
int c=0;
int d=(a-=3,b+=a,c=a-b,b=a-4);
printf("%d",d);
首先从左向右执行,a-=3等价于a=a-3,此时a=0.
执行下一条语句:
b+=a等价于b=b+a,即20+0;此时a=0,b=20。
继续执行
c=a-b,即0-20=-20,所以此时a=0,b=20,c=-20。
最后执行
b=a-4,即0-4=-4.
因为逗号表达式结果是最后一个式子,所以最后结果是-4
我们来验证:
结果正确!
逗号表达式至此结束。
十.下表引用,函数调用和结构成员 [ ], () , . , ->
[ ] --- 下标引用操作符
例如:
arr[10]=0;
arr[5]=9;// [ ] ---下标引用操作符,操作时:数组名, [下标]
() --- 函数调用操作符
int m =fun(3,5);// () --- 函数调用操作符,它的操作数是函数名以及参数
. ->
这些是结构体经常用到的,以后我将结构体和指针的时候会对此进行详细说明,这里只要知道有这个符号即可。
下标引用,函数调用和结构成员至此结束。
所有操作符至此也讲完了。
如果有哪里不会,欢迎可以讨论或私信我哦。