逻辑操作符

简介: 逻辑操作符
  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;

}

相关文章
|
存储 运维 机器人
Nvidia和AMD显卡是如何制作的
Nvidia和AMD显卡是如何制作的
579 0
|
11月前
|
测试技术 Android开发 开发者
【03】优雅草央千澈详解关于APP签名以及分发-上架完整流程-第三篇安卓APP上架华为商店后面的步骤-华为应用商店相对比较麻烦一些-华为商店安卓上架
【03】优雅草央千澈详解关于APP签名以及分发-上架完整流程-第三篇安卓APP上架华为商店后面的步骤-华为应用商店相对比较麻烦一些-华为商店安卓上架
188 16
|
Kubernetes 监控 云计算
Docker与Kubernetes的协同工作
Docker与Kubernetes的协同工作
|
监控 前端开发 JavaScript
浏览器节能机制导致Websocket断连的坑
浏览器节能机制导致Websocket断连的坑
262 0
|
Linux Shell 开发工具
Ubuntu18.04 dash to dock启动器安装教程
Ubuntu18.04 dash to dock启动器安装教程
512 0
|
关系型数据库 MySQL Java
阿里云ECS服务器的搭建和部署
准备工作中,要使用阿里云服务,首先需要注册阿里云账号并进行实名认证。接着,选择合适的服务器配置,例如Windows Server 2012 R2 64位或CentOS 7.3 64位,以及相应的JDK和Tomcat版本。对于Windows服务器,还需要安装MySQL数据库,并配置环境变量。在管理云服务器时,要确保能通过公网IP访问,这可能需要配置安全组规则以允许特定端口的入站流量。最后,安装并配置好所有组件后,可以通过公网IP访问服务器上的服务。
|
存储 NoSQL API
【小小思考】Redis实现去重任务队列
【2月更文挑战第1天】思考一下如何用Redis实现去重的任务队列,主要有List 、List + Set/Hash/Bloom Filter、ZSet、Lua和开源库等方式。
614 1
|
JavaScript Linux iOS开发
nodejs最新版本安装
【1月更文挑战第16天】nodejs最新版本安装
511 4
|
前端开发
(最简单)使用 reset-css 初始化浏览器css样式
(最简单)使用 reset-css 初始化浏览器css样式
531 1