C语言操作符逻辑与,逻辑或面试真题(2)

简介: C语言操作符逻辑与,逻辑或面试真题(2)

各位少年:

今天给大家分享几个代码示例,希望能帮助能从学习的方面,帮助大家。

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

大家可以思考一下,这段代码的最后结果是什么。


这个代码为什么结果是这样啊?明明是a++以后变成真了,为什么呢,打印的结果是这样子?


问题出来了,很显然a是先使用后++,意思是说a先于&&结果然后再++由于a是0为假所以后面不执行。

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


还记得我们上次所说的短路吗?再||如果有一个为真后面的不再计算,所以这个代码除了a是真变成了2其他

都没执行,好本期分享到这里,希望对大家有所帮助,亲爱的少年们。


相关文章
|
22天前
|
C语言
C语言判断逻辑的高阶用法
在C语言中,高级的判断逻辑技巧能显著提升代码的可读性、灵活性和效率。本文介绍了六种常见方法:1) 函数指针,如回调机制;2) 逻辑运算符组合,实现复杂条件判断;3) 宏定义简化逻辑;4) 结构体与联合体组织复杂数据;5) 递归与分治法处理树形结构;6) 状态机管理状态转换。通过这些方法,可以更高效地管理和实现复杂的逻辑判断,使代码更加清晰易懂。
193 88
|
2月前
|
存储 C语言 索引
【C语言篇】操作符详解(下篇)
如果某个操作数的类型在上⾯这个列表中排名靠后,那么⾸先要转换为另外⼀个操作数的类型后执⾏运算。
|
2月前
|
程序员 编译器 C语言
【C语言篇】操作符详解(上篇)
这是合法表达式,不会报错,但是通常达不到想要的结果, 即不是保证变量 j 的值在 i 和 k 之间。因为关系运算符是从左到右计算,所以实际执⾏的是下⾯的表达式。
|
2月前
|
C语言
C语言操作符(补充+面试)
C语言操作符(补充+面试)
39 6
|
2月前
|
存储 编译器 C语言
十一:《初学C语言》— 操作符详解(上)
【8月更文挑战第12天】本篇文章讲解了二进制与非二进制的转换;原码反码和补码;移位操作符及位操作符,并附上多个教学代码及代码练习示例
50 0
十一:《初学C语言》—  操作符详解(上)
|
2月前
|
算法 C语言
【面试题】【C语言】寻找两个正序数组的中位数
【面试题】【C语言】寻找两个正序数组的中位数
15 0
|
3月前
|
C语言
五:《初学C语言》— 操作符
本篇文章主要讲解了关系操作符和逻辑操作符并附上了多个代码示例
37 1
五:《初学C语言》—  操作符
|
2月前
|
JavaScript 前端开发
JS:类型转换(四)从底层逻辑让你搞懂经典面试问题 [ ] == ![ ] ?
JS:类型转换(四)从底层逻辑让你搞懂经典面试问题 [ ] == ![ ] ?
|
4月前
|
C语言
C语言逻辑操作符的短路问题
C语言逻辑操作符的短路问题
|
4月前
|
C语言
C语言中的赋值运算、比较运算和逻辑运算详解
C语言中的赋值运算、比较运算和逻辑运算详解