-1 c++
我只是在玩指针,我有一个问题.
我写了以下while循环:
#include <iostream>
using namespace std;
int main() {
int a = 10;
int *b = &a;
while(*b){ cout << "true"; break; }
cout << endl;
cout << b;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
条件是什么时候,(*b)是假的?如果我没有将它指向一个值,代码就不会编译.
另外,你如何将条件测试翻译成英语?
在此代码中,如果a为零,则仅为false .事实并非如此,因此这种情况永远不会是错误的.
*b取消引用指针b并计算为指向的值.既然b指向a,那么总是如此*b == a(除非你b改为指向其他地方).
英文翻译while (*b)是"只要对象b指向评估为真,就执行此循环的主体".一个int当其值不为零,是真实的.