操作符的相关知识(二)

接着上一章,我们该继续说剩下的操作符了

六.关系操作符 > >= < <= != ==

> >= < <=

这些我们学数学应该很常见

分别是大于、大于等于、小于、小于等于

这些经常用在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);// () --- 函数调用操作符,它的操作数是函数名以及参数

.   ->

这些是结构体经常用到的,以后我将结构体和指针的时候会对此进行详细说明,这里只要知道有这个符号即可。

下标引用,函数调用和结构成员至此结束。

所有操作符至此也讲完了。

如果有哪里不会,欢迎可以讨论或私信我哦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

次元工程师!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值