c – while(i = 0)和while(i == 0)之间的差异

在我的考试中,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并始终执行循环体…循环中只有一个中断(或异常)才会终止它.

(许多其他语言没有广泛的这个问题,因为它们需要表达布尔类型的条件,例如while和if.虽然这些语言仍然经常遇到问题(b = false).)

相关文章

对象的传值与返回说起函数,就不免要谈谈函数的参数和返回值...
从实现装饰者模式中思考C++指针和引用的选择最近在看...
关于vtordisp知多少?我相信不少人看到这篇文章,多半是来自...
那些陌生的C++关键字学过程序语言的人相信对关键字并...
命令行下的树形打印最近在处理代码分析问题时,需要将代码的...
虚函数与虚继承寻踪封装、继承、多态是面向对象语言的三大特...