【C语言入门】---操作符(下)

🎈🎈 作者 : @Y_X01
🎈🎈专栏 : C语言从无到有

✨放低姿态,空杯心态✨
在这里插入图片描述


1.关系操作符

>

>=

<

<=

!= 用于测试“不相等”

== 用于测试“相等”

2.逻辑操作符

&& 逻辑与

|| 逻辑或

逻辑与与逻辑或只关注真假,不关注二进制位,非零为真

1&&2---->1 全真则真,一假则假(并且)

0 ||2---->0 一真则真,全假则假(或者)

笔试题:

#include <stdio.h>
int main()
{
    int i = 0,a=0,b=2,c =3,d=4;
    //(2)int i = 0,a=1,b=2,c =3,d=4;
    i = a++ && ++b && d++;
    //(2)i = a++||++b||d++;
    printf("a = %d\n b = %d\n c = %d\nd = %d\n", a, b, c, d);
    return 0; 
}

解析:

(1) 首先执行a++,先使用a,a = 0即为假,则&&后边的表达式不进行计算,然后a自加可以得到 a = 1, b =2 ;c =3 ;d = 4

(2) 首先执行a++,先使用a,a为真,则进行||运算后,结果为真,故||后边不再进行计算,然后a自加可以得到,a = 2, b = 2, c =3, d = 4;

3.条件操作符

表达式1 ? 表达式2:表达式3

逻辑展示:

在这里插入图片描述

举例:求两个数最大值

int a = 5;
int b = 8;
max = (a > b ? a : b);	//a如果大于b的话会把a赋值给max,如果a不大于b 的话则会把b赋值给max
printf("%d\n", max);

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iDdcQIfx-1654171913968)(C:/Users/love46/AppData/Roaming/Typora/typora-user-images/image-20220602194750183.png)]

4.逗号表达式

exp1, exp2, exp3, …expN

逗号表达式,就是用逗号隔开的多个表达式,从左向右依次执行。整个表达式的结果是最后一个表达式的结果。

	int a = (1, 2, 3, 5);	//逗号表达式,从左向右依次执行。整个表达式的结果是最后一个表达式的结果。
							//整个表达式的最后是5,5最终赋值给a
	printf("%d\n", a);

故可得 a = 5

5.下标引用、函数调用和结构成员

[] () . ->

  1. [ ] 下标引用操作符

操作数:一个数组名 + 一个索引值

int arr[10] = { 1,2,3,4,5,6,7,8,9,10};	//创建数组
printf("%d\n", arr[5]);    //打印数组下标为5的元素

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WNxBKgP3-1654171913969)(C:/Users/love46/AppData/Roaming/Typora/typora-user-images/image-20220602195413838.png)]

arr[7] ----> *(arr+7) —> *(7+arr) —> 7[arr]

  1. ( ) 函数调用操作符
#include <stdio.h>
void test1()
 {
      printf("hehe\n");
 }
void test2(const char *str)
{
       printf("%s\n", str);
 }
int main()
{
 test1();            //使用()作为函数调用操作符。
 test2("hello bit.");//使用()作为函数调用操作符。
 return 0;
 }

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rLhSTTAc-1654171913970)(C:/Users/love46/AppData/Roaming/Typora/typora-user-images/image-20220602195906206.png)]

. 结构体.成员名
-> 结构体指针->成员名

struct stu
{
	char name[20];
	int age;
};
int main()
{
	struct stu s1 = { "李四", 19 };
	printf("%s  %d\n", s1.name, s1.age);	// .是用来访问结构体成员的
	return 0;
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZJKMytqm-1654171913972)(C:/Users/love46/AppData/Roaming/Typora/typora-user-images/image-20220602200347006.png)]

struct stu
{
	char name[20];
	int age;
};
int main()
{
	struct stu s1 = { "李四", 19 };,
	struct stu* p = &s1;
	printf("%s  %d", p->name, p->age);		//结构体指针->成员名,打印结构体指针指向的成员
	return 0;
}

结果同上
在这里插入图片描述
预告:【C语言入门】—指针(初阶)

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

署前街的少年

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

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

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

打赏作者

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

抵扣说明:

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

余额充值