gpt4 book ai didi

c++ - 空指针的内存位置

转载 作者:太空宇宙 更新时间:2023-11-04 14:39:17 24 4
gpt4 key购买 nike

看了很多关于空指针的问题,对于空指针中的内存分配,我还是很困惑。

如果我输入以下代码-

int a=22;
int *p=&a;//now p is pointing towards a
std::cout<<*p;//outputs 22
std::cout<<p;//outputs memory address of object a;
int *n=nullptr;// pointer n is initialized to null
std::cout<<n;

编译此代码后指针 n 输出常量 0,如果我尝试这样做,

std::cout<<*n;

这行代码是编译器编译出来的,但是无法执行,这段代码有什么问题,应该打印出这个指针的内存位置。

std::cout<<p;

这个输出指针在内存中的位置还是对象在内存中的位置。由于许多或所有这些答案已经在前面的问题中得到了回答,但不知何故我无法理解,因为我是 C++ 的初学者。

最佳答案

A nullptr指针不指向任何东西。它不包含有效地址,而是“非地址”。它是概念性的,您不必担心它的值(value)。

唯一重要的是你不能取消引用 nullptr指针,因为这会导致未定义的行为,这就是您的程序在运行时失败的原因 ( std::cout<<*n )

关于c++ - 空指针的内存位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24758882/

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