逻辑操作符

简介: 逻辑操作符
  1. 逻辑操作符

&& 逻辑与
|| 逻辑或
逻辑与:两个值中一个为假,则判断为假
逻辑或:两个值中一个为真,则判断为真

区分逻辑与和按位与
区分逻辑或和按位或

1&2----->0
1&&2---->1
1|2----->3
1||2---->1

  1. 条件操作符

exp1 ? exp2 : exp3

代码演示:

include <stdio.h>

int main()
{

int a = 10;
int b = 0;
int c = 0;
if (a > b)
    b = 3;
else
    b = -3;
c = (a > b ? 3 : -3);
printf("%d %d\n", b, c);
return 0;

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
运行结果:

分析:
exp1 ? exp2 : exp3
如果表达式1为真,那么就计算表达式2,表达式2的结果为整个式子的 结果
如果表达式1为假,那么就计算表达式3,表达式3的结果为整个式子的结果
相比于条件语句条件操作符更简洁

  1. 逗号表达式

exp1, exp2, exp3, …expN

逗号表达式,就是用逗号隔开的多个表达式

include <stdio.h>

int main()
{

int a = 1; 
int b = 2; 
int c = (a > b, a = b + 10, a, b = a + 1);//逗号表达式
printf("%d\n", c);
return 0;

}
1
2
3
4
5
6
7
8
9
运行结果:

分析:逗号表达式,从左向右依次执行,整个表达式的结果是最后一个表达式的结果

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

11.1 下标引用
[ ] 下标引用操作符操作数:一个数组名 + 一个索引值

int arr[10]; 创建数组
arr[9] =10; 实用下标引用操作符
[ ]的两个操作数是arr和9。

11.2 函数调用
() 函数调用操作符

代码演示:

include <stdio.h>

void test1()
{

printf("haha\n");

}
void test2(const char* str)
{

printf("%s\n", str); 

}
int main()
{

test1();
//实用()作为函数调用操作符。 
test2("hello world!");
//实用()作为函数调用操作符。 
return 0;

}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
运行结果:

分析:接受一个或者多个操作数:第一个操作数是函数名,剩余的操作数就是传递给函数的参数。

11.3 访问一个结构的成员
访问方法:

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

代码演示:

include <stdio.h>

//学生
struct Stu
{

//成员
char name[20];
int age;
char sex[10];
char tele[12];

};
void print(struct Stu* ps)
{

printf("%s %d %s %s\n", (*ps).name, (*ps).age, (*ps).sex, (*ps).tele);
//->
//结构体指针变量->成员名
printf("%s %d %s %s\n", ps->name, ps->age, ps->sex, ps->tele);

}

int main()
{

struct Stu s = {"zhangsan", 20, "nan", "15596668862"};
    //结构体对象.成员名
printf("%s %d %s %s\n", s.name, s.age, s.sex, s.tele);
print(&s);
return 0;

}

相关文章
|
1月前
|
编译器 C语言
关系/条件/逻辑~操作符
关系/条件/逻辑~操作符
|
3天前
|
C语言
C语言逻辑操作符的短路问题
C语言逻辑操作符的短路问题
|
1月前
|
C语言
逻辑操作符
条件操作符(三目操作符)是C语言中唯一的三元运算符,形式为:表达式1 ? 表达式2 : 表达式3。如果表达式1为真,执行并返回表达式2的结果;否则,执行并返回表达式3的结果。示例和练习展示了如何使用此操作符来比较和输出两个数中的较大值。
20 1
|
3天前
|
Dart
Dart之运算符(算数、关系、逻辑、赋值、条件)
Dart之运算符(算数、关系、逻辑、赋值、条件)
8 0
|
1月前
|
C语言
逻辑操作符中的短路
C语言逻辑运算符按左到右顺序执行,先评估左侧表达式。如果左侧满足条件,右侧表达式不会求值,此现象称为短路。例如,`month &gt;= 3 && month &lt;= 5`,若month小于3,右侧不执行。同样,对于`month == 12 || month == 1 || month == 2`,若month为12,不需要检查其余条件。练习题中未提供具体代码,但给出了结果:a=2, b=3, c=3, d=5。
21 0
|
1月前
|
C语言
条件操作符和逻辑操作符(C语言零基础教程)
条件操作符和逻辑操作符(C语言零基础教程)
|
1月前
|
安全 JavaScript
操作符keyof的作用是什么?
操作符keyof的作用是什么?
13 0
|
1月前
|
C++
关系运算符及其优先次序:编程中的比较逻辑
在编程中,关系运算符是用于比较两个值之间关系的一种重要工具。它们帮助我们根据这些关系(如相等、不等、大于、小于等)来做出决策或执行特定的代码块。理解关系运算符及其优先次序对于编写正确和高效的代码至关重要。
41 0
|
1月前
|
C++
c++逻辑和杂项运算符
c++逻辑和杂项运算符
20 0
|
1月前
|
JavaScript
操作符keyof的作用是什么?
操作符keyof的作用是什么?