由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 问个简单的C++问题
相关主题
请问call by name是不是C编译器都没实现How to Write a recursive method to evaluate infix expressions
一个C++语法问题c question
请问 a+ = 2 与 a= a+2的区别请教个script问题
求一个evaluate chess board的简单算法条件判断问题,
matlab optimization问题cxx程序如何给optimized build加函数symbol?
一道C++面试编程题发现一个Go的大坑,传给defer的参数不取运行时的值
a c++ question for templatepython 3 lazy evaluate 改起来麻烦
请教一个问题National Artificial Intelligence R&D Strategic Plan
相关话题的讨论汇总
话题: null话题: node话题: 条件话题: c++话题: circuit
进入Programming版参与讨论
1 (共1页)
t*****n
发帖数: 167
1
if ((node==NULL) || (node->next == NULL))
这句话是不是有问题,如果考虑 node = NULL的情况,第二个条件会引起异常吗? 应
该要拆成两句吗?
if (node==NULL)
。。。。。。。。。。。。。。;
if (node-〉next == NULL)
。。。。。。。。。。。。。。。。。。。;
想问一下编译器是怎么处理这个条件语句的?如果第一个条件成立,是不是就不检测第
二个条件了? 还是两个条件都检查。我写程序测试了一下,似乎没什么问题,想确认
一下。
P********e
发帖数: 2610
2
对,写在一起方便
以前有面食题就是考这个的

【在 t*****n 的大作中提到】
: if ((node==NULL) || (node->next == NULL))
: 这句话是不是有问题,如果考虑 node = NULL的情况,第二个条件会引起异常吗? 应
: 该要拆成两句吗?
: if (node==NULL)
: 。。。。。。。。。。。。。。;
: if (node-〉next == NULL)
: 。。。。。。。。。。。。。。。。。。。;
: 想问一下编译器是怎么处理这个条件语句的?如果第一个条件成立,是不是就不检测第
: 二个条件了? 还是两个条件都检查。我写程序测试了一下,似乎没什么问题,想确认
: 一下。

E*V
发帖数: 17544
3
这个市C的臭规矩,只看第一个,如果第一个true的话

【在 t*****n 的大作中提到】
: if ((node==NULL) || (node->next == NULL))
: 这句话是不是有问题,如果考虑 node = NULL的情况,第二个条件会引起异常吗? 应
: 该要拆成两句吗?
: if (node==NULL)
: 。。。。。。。。。。。。。。;
: if (node-〉next == NULL)
: 。。。。。。。。。。。。。。。。。。。;
: 想问一下编译器是怎么处理这个条件语句的?如果第一个条件成立,是不是就不检测第
: 二个条件了? 还是两个条件都检查。我写程序测试了一下,似乎没什么问题,想确认
: 一下。

t*****n
发帖数: 167
4
确实这样,改成
if((head->next == NULL) || (head == NULL) )
在head=NULL的情况,会crash

【在 E*V 的大作中提到】
: 这个市C的臭规矩,只看第一个,如果第一个true的话
g*****g
发帖数: 34805
5
No, if node==NULL is true, the 2nd condition won't be executed.

【在 t*****n 的大作中提到】
: if ((node==NULL) || (node->next == NULL))
: 这句话是不是有问题,如果考虑 node = NULL的情况,第二个条件会引起异常吗? 应
: 该要拆成两句吗?
: if (node==NULL)
: 。。。。。。。。。。。。。。;
: if (node-〉next == NULL)
: 。。。。。。。。。。。。。。。。。。。;
: 想问一下编译器是怎么处理这个条件语句的?如果第一个条件成立,是不是就不检测第
: 二个条件了? 还是两个条件都检查。我写程序测试了一下,似乎没什么问题,想确认
: 一下。

p****f
发帖数: 251
6
that is called short-circuit evaluation. If node==NULL, the second boolean
function will not be evaluated.

【在 t*****n 的大作中提到】
: if ((node==NULL) || (node->next == NULL))
: 这句话是不是有问题,如果考虑 node = NULL的情况,第二个条件会引起异常吗? 应
: 该要拆成两句吗?
: if (node==NULL)
: 。。。。。。。。。。。。。。;
: if (node-〉next == NULL)
: 。。。。。。。。。。。。。。。。。。。;
: 想问一下编译器是怎么处理这个条件语句的?如果第一个条件成立,是不是就不检测第
: 二个条件了? 还是两个条件都检查。我写程序测试了一下,似乎没什么问题,想确认
: 一下。

l*****c
发帖数: 1153
7
条件短路不是一定的。绝大多数编译器会这么做,但是可以关掉的。

【在 P********e 的大作中提到】
: 对,写在一起方便
: 以前有面食题就是考这个的

t****t
发帖数: 6806
8
name a C/C++ compiler that has this option?

【在 l*****c 的大作中提到】
: 条件短路不是一定的。绝大多数编译器会这么做,但是可以关掉的。
l*****c
发帖数: 1153
9
嗯,查了一下,我错了。C99已经规定必须short-circuit了。sigh,我怎么记得看到过
这个选项?可能不是C++编译器?

【在 t****t 的大作中提到】
: name a C/C++ compiler that has this option?
t****t
发帖数: 6806
10
i think short-circuit evaluation is defined in k&r...i could be wrong, but
it's definitely in c89.
you probably meant pascal.

【在 l*****c 的大作中提到】
: 嗯,查了一下,我错了。C99已经规定必须short-circuit了。sigh,我怎么记得看到过
: 这个选项?可能不是C++编译器?

l*****c
发帖数: 1153
11
嗯,又查了一下,是我看错了,K&R里面定义的。我就是奇怪,我怎么就记得看到过可
以关掉的呢?

【在 t****t 的大作中提到】
: i think short-circuit evaluation is defined in k&r...i could be wrong, but
: it's definitely in c89.
: you probably meant pascal.

l*****c
发帖数: 1153
12
嗯,估计是Pascal了,当年用的多啊

【在 t****t 的大作中提到】
: i think short-circuit evaluation is defined in k&r...i could be wrong, but
: it's definitely in c89.
: you probably meant pascal.

1 (共1页)
进入Programming版参与讨论
相关主题
National Artificial Intelligence R&D Strategic Planmatlab optimization问题
ADA Compliance / Web Accessibility Evaluation Tool Recommendation一道C++面试编程题
最近关于DL争论a c++ question for template
问个简单的C++问题请教一个问题
请问call by name是不是C编译器都没实现How to Write a recursive method to evaluate infix expressions
一个C++语法问题c question
请问 a+ = 2 与 a= a+2的区别请教个script问题
求一个evaluate chess board的简单算法条件判断问题,
相关话题的讨论汇总
话题: null话题: node话题: 条件话题: c++话题: circuit