为什么 while (cout << A[--N] << && N) 和 while (cout << A[--N] << ) 给了我两个不同的答案,这
why does while (cout << A[--N] << ' ' && N) and while (cout << A[--N] << ' ') gave me two different answer, what does N here do?
代码就像以下
int main() {
int N, i = 0;
cin >> N;
int *A = new int[N];
while (cin >> A[i++])
;
while (cout << A[--N] << ' ' && N)
;
delete[] A;
return 0;
}
当我删除&amp; amp; n时,我的输出零很多,我真的不知道为什么
语句
std::cout << A[--N] << ' '
如果没有错误,则返回true。循环
while (std::cout << A[--N] << ' ');
输出值直到发生错误。只要A[--N]
不尝试读取无法访问的内存,
std::cout << A[--N] << ' '
将评估true
。
程序
#include <iostream>
int main() {
int a[5];
std::cout << a[-10];
return 0;
}
具有不确定的行为,但可以编译和执行。在许多情况下
std::cout << a[-10];
将是true
。
您问题中的&& N
在N
到达0
时停止循环。
相关文章:
- 请解释这句话(cout<<1+int((a<b)^((b-a)&1) )<<endl
- 呼叫运营商<<临时
- 如何防止clang格式在流运算符调用之间添加换行符<<
- <<操作员在下面的行中工作
- 如何显式调用运算符<<
- 模板操作员&lt;未打电话
- C / CUDA中的模板方法是3个角括号(&lt;&lt;&lt;)
- C - 创建矢量&lt; vector&lt; double&gt;&gt;矩阵具有分配而不是inizializ
- 错误:调用"std::vector<:vector<int>>::p ush_back(std::vector<std::__cxx11::basic_string<
- C 建造者Clang STD :: Sill,找不到超载的操作员&lt;
- 为什么STD :: MAP需要操作员&lt;以及我如何写一个
- 为什么“操作员”需要const但不是为“运营商&lt;”
- 为什么将此对向量&lt; map&lt; int,int&gt;&gt;中的地图进行更新.失败
- C :对矢量进行排序&lt; struct&gt;(结构有2个整数)基于结构的整数之一
- 明确的专业化“ CheckIntmap&lt;&gt;”实例化
- 什么是模板&lt;&gt;inline bla bla
- 左角支架解释为操作员&lt;而不是模板参数
- 编辑C Qlist&lt; object*&gt; gt;QML代码和一些QML警告中的模型
- 超载操作员&lt;&lt; - 必须是二进制操作员
- 没有匹配的“运营商&lt;&lt;”