gpt4 book ai didi

c++ - while(i=0) 和 while(i==0) 的区别

转载 作者:可可西里 更新时间:2023-11-01 18:40:13 29 4
gpt4 key购买 nike

我在考试中出现了以下C++问题

代码:

int i, n;
int* A
cin >> n;
A = new int[n]
for(int i = 0; i < n; i++) cin >> A[i];

while(i = 0){
cout << A[i] << endl;
i--;
}
}

输出结果是什么?我认为它应该进入无限循环!

最佳答案

while (i = 0) 会将值 0 赋值i 然后检查表达式的值(即分配的值,即 0) 是非零的。换句话说,它甚至不会执行一次循环体...它只会将 i 设置为 0。它还会对任何体面的编译器发出警告,因为它是常见的错字。

遵循相同的逻辑,while (i = 1) 会将值 1 赋给 i 并且总是执行循环体。 . 只有循环内的中断(或异常)会终止它。

(许多其他语言没有广泛存在这个问题,因为它们需要 bool 类型的表达式来表示 while 和 if 等条件。这些语言仍然经常有 while (b = false) 的问题 虽然。)

关于c++ - while(i=0) 和 while(i==0) 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5402314/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com