Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/136.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我们在C+;中创建一个nullptr并在IF条件下使用它会发生什么+; 我想看看当我在C++中创建一个null pTr并在if语句中使用它时会发生什么。例如,我的代码如下所示: int*p=nullptr;如果(p){cout_C++_Pointers_Null - Fatal编程技术网

我们在C+;中创建一个nullptr并在IF条件下使用它会发生什么+; 我想看看当我在C++中创建一个null pTr并在if语句中使用它时会发生什么。例如,我的代码如下所示: int*p=nullptr;如果(p){cout

我们在C+;中创建一个nullptr并在IF条件下使用它会发生什么+; 我想看看当我在C++中创建一个null pTr并在if语句中使用它时会发生什么。例如,我的代码如下所示: int*p=nullptr;如果(p){cout,c++,pointers,null,C++,Pointers,Null,您所说的是对的,nullptr分配位置并给出值0,而0在c中为false++ #include <iostream> using namespace std; int main() { int *p=nullptr; if(p){cout<<"Inside IF";} cout<<&p<<endl; cout<<p; } #包括 使用名称

您所说的是对的,nullptr分配位置并给出值0,而0在c中为false++

    #include <iostream>
    using namespace std;
    int main() {
    int *p=nullptr; 
    if(p){cout<<"Inside IF";}
    cout<<&p<<endl;
    cout<<p;

     }
#包括
使用名称空间std;
int main(){
int*p=nullptr;
如果(p){cout

您所说的是对的,nullptr分配位置并给出值0,而0在c中为false++

    #include <iostream>
    using namespace std;
    int main() {
    int *p=nullptr; 
    if(p){cout<<"Inside IF";}
    cout<<&p<<endl;
    cout<<p;

     }
#包括
使用名称空间std;
int main(){
int*p=nullptr;
如果(p){cout用作参考:

  • ,空指针文本
  • ,类型为
    nullptr
  • ,特别是指向
    bool
    转换的指针
线路

int *p=nullptr;
创建指向具有自动存储持续时间的-
int
int
指针。然后将
nullptr
分配给它,并自动转换为
int*
指针的空指针值。实际上,该值不一定在内部存储为
0
对于每种指针类型,从整数文本
0
到空指针值的icit转换

那么在比较中,

if(p){cout<<"Inside IF";}
if(p){cout供参考:

  • ,空指针文本
  • ,类型为
    nullptr
  • ,特别是指向
    bool
    转换的指针
线路

int *p=nullptr;
创建指向具有自动存储持续时间的-
int
int
指针。然后将
nullptr
分配给它,并自动转换为
int*
指针的空指针值。实际上,该值不一定在内部存储为
0
对于每种指针类型,从整数文本
0
到空指针值的icit转换

那么在比较中,

if(p){cout<<"Inside IF";}
if(p){cout
  • 当我们创建一个nullptr时会发生什么
  • 您可以创建空指针,但不能创建
    nullptr
    。关键字
    nullptr
    表示文字值,而不是可以创建的值

    根据您的代码,您的意思是询问当指针变量被赋值为
    nullptr
    时会发生什么。答案是,当在布尔上下文中使用时,您的变量变为一个指针,一个不指向任何内容且计算结果为
    false

    我的意思是,是否创建了一个新的指针对象来保存值0(作为地址)或其他内容

    我们通常认为空指针的值为零,但从技术上讲,一个实现可以使用具有一些非零位的位模式。只要您不太仔细地查看编译后的代码,就可以将空指针视为持有地址0

    如果它持有的地址是0,那么指针是否指向内存中可能有效的地址

    空指针的值必须不同于所有可能有效的内存地址。如果
    0
    可能是一个实现中的有效内存地址,则该实现必须使用不同的位模式来表示空指针。(我不知道有任何实现属于这一类。)

  • 当我们在IF语句中使用它时会发生什么
  • if
    语句的条件是to
    bool
    。从指针开始,空指针值转换为
    false
    ,所有其他值转换为
    true

    我的意思是IF语句是否检查指针对象持有的值是0或其他值

    它检查该值是否为空指针值(在计算机上几乎可以肯定是由零位表示的,但从技术上讲不一定是零位)

  • 当我们创建一个nullptr时会发生什么
  • 您可以创建空指针,但不能创建
    nullptr
    。关键字
    nullptr
    表示文字值,而不是可以创建的值

    根据您的代码,您的意思是询问当指针变量被赋值为
    nullptr
    时会发生什么。答案是,当在布尔上下文中使用时,您的变量变为一个指针,一个不指向任何内容且计算结果为
    false

    我的意思是,是否创建了一个新的指针对象来保存值0(作为地址)或其他内容

    我们通常认为空指针的值为零,但从技术上讲,一个实现可以使用具有一些非零位的位模式。只要您不太仔细地查看编译后的代码,就可以将空指针视为持有地址0

    如果它持有的地址是0,那么指针是否指向内存中可能有效的地址

    空指针的值必须不同于所有可能有效的内存地址。如果
    0
    可能是一个实现中的有效内存地址,则该实现必须使用不同的位模式来表示空指针。(我不知道有任何实现属于这一类。)

  • 当我们在IF语句中使用它时会发生什么
  • if
    语句的条件是to
    bool
    。从指针开始,空指针值转换为
    false
    ,所有其他值转换为
    true

    我的意思是IF语句是否检查指针对象持有的值是0或其他值


    另一种方法(但仅通过细微的含义)。它检查值是否为空指针值(几乎可以肯定在您的计算机上由零位表示,但技术上不能保证是零位)。

    抱歉,现在您可以检查代码抱歉,现在您可以检查代码了