当指针指向零值时,为什么指针为空白?

量子

在c ++中玩指针。我遇到了意外情况。我有代码:

int main(){
  char p=0;
  char* ptr=&p;
  cout<<"This is the pointer: "<<ptr;
return 0;
}  

当我运行此代码时,输​​出ptr为空白。如果我将的值更改p为任何其他值,则似乎会输出一个随机指针,例如,运行之间的值更改,正如我所期望的那样。然后的问题是,将char值赋给0有什么不同。
额外信息:使用g ++ 4.8.4进行编译

斯蒂芬
char p=0;

您的变量被定义为字符,并被分配为零的整数值,因此在内部,您将在变量p上分配一个以空终止的字符。如果您按以下说明更正以上声明并打印更多详细信息,则可能会很清楚。

char p='0'; 

std::cout<<"This is the pointer: "<<&ptr<<" ---"<<*ptr <<"----"<<ptr;

&& ptr->获取ptr的地址

* ptr->获取分配给ptr的值

ptr->从ptr获取字符串,直到看到终止字符为空,因此希望将垃圾值作为输出。

演示:http : //coliru.stacked-crooked.com/a/2d134412490ca59a

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么指针a的值改变时指针b的值不变

来自分类Dev

为什么返回指向本地定义变量的指针为null而不是指向堆栈中位置的指针?

来自分类Dev

即使将指针分配为NULL,为什么指针的指针对象的大小也不为零?

来自分类Dev

为什么指向NSInteger的指针将值乘以8?

来自分类Dev

尽管指向 malloc 的内存,为什么指针“忘记”了它的值

来自分类Dev

为什么我的特征数据库指针为零?

来自分类Dev

为什么ELF部分中的静态成员指针为零?

来自分类Dev

访问值为 Null 的指针和访问它指向的指针有什么区别?

来自分类Dev

为什么下面的代码段返回指针所指向的值而不是指针的地址?

来自分类Dev

当您可以直接将变量作为指针指向时,为什么要在C中创建指针?

来自分类Dev

当指针指向新的线符号时,为什么我必须使用“seekg”将指针移动 2?

来自分类Dev

尝试为原始指针值赋予新值时,为什么会导致错误?

来自分类Dev

为什么指向函数的指针等于1?

来自分类Dev

尝试在评分栏中将值设置为“ rating”时,为什么会出现空指针异常?

来自分类Dev

为什么插入列表需要指向指针的指针

来自分类Dev

Excel:为什么空白单元格的值为零?

来自分类Dev

C-为什么指向指针的指针与指向数组的指针不一样?

来自分类Dev

为什么从 C 打印时 CString 指针值会改变?

来自分类Dev

为什么通过引用传递时更改了指针值?

来自分类Dev

为什么我们访问由 char* 指向的字节的值而不是指针的值?

来自分类Dev

比较指针指向的值

来自分类Dev

更改指向指针的值

来自分类Dev

在 C 中,如果将双指针分配给值,为什么指针变量为 0?

来自分类Dev

当我可以创建共享指针时,为什么不能创建指向数组的唯一指针?

来自分类Dev

为什么在声明指针时不能打印已初始化的指针值?

来自分类Dev

为什么带有指针参数的成员函数需要指向指针的指针?

来自分类Dev

为什么指向类对象的指针的静态向量具有垃圾值?

来自分类Dev

为什么对于同一结构的不同成员,指向成员的指针的值总是相同?

来自分类Dev

为什么第一次迭代后的指针指向随机值?

Related 相关文章

  1. 1

    为什么指针a的值改变时指针b的值不变

  2. 2

    为什么返回指向本地定义变量的指针为null而不是指向堆栈中位置的指针?

  3. 3

    即使将指针分配为NULL,为什么指针的指针对象的大小也不为零?

  4. 4

    为什么指向NSInteger的指针将值乘以8?

  5. 5

    尽管指向 malloc 的内存,为什么指针“忘记”了它的值

  6. 6

    为什么我的特征数据库指针为零?

  7. 7

    为什么ELF部分中的静态成员指针为零?

  8. 8

    访问值为 Null 的指针和访问它指向的指针有什么区别?

  9. 9

    为什么下面的代码段返回指针所指向的值而不是指针的地址?

  10. 10

    当您可以直接将变量作为指针指向时,为什么要在C中创建指针?

  11. 11

    当指针指向新的线符号时,为什么我必须使用“seekg”将指针移动 2?

  12. 12

    尝试为原始指针值赋予新值时,为什么会导致错误?

  13. 13

    为什么指向函数的指针等于1?

  14. 14

    尝试在评分栏中将值设置为“ rating”时,为什么会出现空指针异常?

  15. 15

    为什么插入列表需要指向指针的指针

  16. 16

    Excel:为什么空白单元格的值为零?

  17. 17

    C-为什么指向指针的指针与指向数组的指针不一样?

  18. 18

    为什么从 C 打印时 CString 指针值会改变?

  19. 19

    为什么通过引用传递时更改了指针值?

  20. 20

    为什么我们访问由 char* 指向的字节的值而不是指针的值?

  21. 21

    比较指针指向的值

  22. 22

    更改指向指针的值

  23. 23

    在 C 中,如果将双指针分配给值,为什么指针变量为 0?

  24. 24

    当我可以创建共享指针时,为什么不能创建指向数组的唯一指针?

  25. 25

    为什么在声明指针时不能打印已初始化的指针值?

  26. 26

    为什么带有指针参数的成员函数需要指向指针的指针?

  27. 27

    为什么指向类对象的指针的静态向量具有垃圾值?

  28. 28

    为什么对于同一结构的不同成员,指向成员的指针的值总是相同?

  29. 29

    为什么第一次迭代后的指针指向随机值?

热门标签

归档