【发布时间】:2014-06-17 12:04:22
【问题描述】:
我有:
#include <iostream>
int main()
{
static int i, arr[10];
cout<<(i==0) && (arr[i]<0);
}
这意味着i 和t 的所有元素都自动使用0 初始化。为什么这个表达式(i==0) && (t[i]<0) 返回真?即使这样也返回 true:
#include <iostream>
int main()
{
static int i;
cout<<(i==0) && (i==1);
}
当我把这个应该有正确答案a的问题加红时,我感到困惑:
- 鉴于声明:
静态整数 i, t[10];
并假设 i 和 t 均未显式初始化,则表达式的值
(i==0) && (t[i]<0)
(a) 是 1
(b) 为 0
(c) 取决于上下文
【问题讨论】:
-
发布一个显示“问题”的代码示例。
-
Even this returns true:- 使用括号! -
试试
cout<< (i==0 && i==1); -
我编辑了这个问题,以便您了解我为什么没有使用
cout<< (i==0 && i==1);。
标签: c++ expression