什么时候(*b)是假的?

-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)是假的?如果我没有将它指向一个值,代码就不会编译.

另外,你如何将条件测试翻译成英语?

cdh*_*wie 7

在此代码中,如果a为零,则仅为false .事实并非如此,因此这种情况永远不会是错误的.

*b取消引用指针b并计算为指向的值.既然b指向a,那么总是如此*b == a(除非你b改为指向其他地方).

英文翻译while (*b)是"只要对象b指向评估为真,就执行此循环的主体".一个int当其值不为零,是真实的.