第一次 cout 后的错误值

库希

我正在制作一个从 C++ 开始的测试程序:)

第一次打印后显示错误的值

在此处输入图片说明

这是代码(很简单)

#include "pch.h"
#include <iostream>
#include <Windows.h>
using namespace std;

int main()
{
    int varInt = 123456;
    char varString[] = "DefaultString";
    char arrChar[128] = "Long char array right there ->";
    int * ptr2int;
    ptr2int = &varInt;
    int ** ptr2ptr;
    ptr2ptr = &ptr2int;
    int *** ptr2ptr2;
    ptr2ptr2 = &ptr2ptr;

    while(1){
        cout << "Process ID: " << GetCurrentProcessId() << endl;

        cout << "varInt (0x" << &varInt << ") = " << varInt << endl;
        cout << "varString (0x" << &varString << ") = " << varString << endl;
        cout << "varChar (0x" << &arrChar << ") = " << arrChar << endl;

        cout << "ptr2int (0x" << hex << &ptr2int << ") = " << ptr2int << endl;
        cout << "ptr2ptr (0x" << hex << &ptr2ptr << ") = " << ptr2ptr << endl;
        cout << "ptr2ptr2 (0x" << hex << &ptr2ptr2 << ") = " << ptr2ptr2 << endl;

        cout << "Press ENTER to print again." << endl;
        getchar();
        cout << "-----------------------------------" << endl;
    }

    return 0;
}

预期的结果是显而易见的,因为代码是按原样发布的:

  • Process ID是整数所以应该返回12704(或任何 int 值)而不是31a0
  • varInt它也是整数,应该返回123456而不是1e240
Peter Cheng

1e240 与十六进制的 123456 相同。第一次迭代将正确打印 123456,但在将 cout 的基本标志设置为十六进制模式后,您需要将其设置回 dec 以在下一个循环中再次打印 123456。

cout << "varInt (0x" << &varInt << ") = " << dec << varInt << endl;

有关文档,请参见此处

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

NSLayoutConstraints在第一次tableview演示后更新

来自分类Dev

第一次单击后不起作用

来自分类Dev

第一次单击后禁用按钮

来自分类Dev

第一次发生后中断flatMap

来自分类Dev

LAPACK函数在第一次迭代后变慢

来自分类Dev

套接字在第一次接收后停止

来自分类Dev

第一次后无法更改窗口大小

来自分类Dev

第一次迭代后中断循环

来自分类Dev

为什么在第一次迭代后就停止了?

来自分类Dev

inotify脚本在第一次更改后停止

来自分类Dev

第一次发生后中断flatMap

来自分类Dev

第一次启动后的屏幕伪像

来自分类Dev

第一次输入后隐藏占位符

来自分类Dev

toggleClass()在第一次后不起作用

来自分类Dev

第一次循环后无法发送邮件

来自分类Dev

第一次单击后禁用JButton

来自分类Dev

第一次触摸后禁用GetTouch

来自分类Dev

第一次后停止读取NFC标签

来自分类Dev

第一次旋转后SnapSVG旋转问题

来自分类Dev

第一次活动后强制关闭

来自分类Dev

Ajax 代码在第一次计算后停止

来自分类Dev

第一次点击后如何禁用按钮?

来自分类Dev

第一次编译后重现元素

来自分类Dev

While 循环在第一次迭代后中断

来自分类Dev

第一次后无法点击链接

来自分类Dev

For 循环在第一次迭代后结束

来自分类Dev

mysql 在第一次后工作正常

来自分类Dev

第一次错误使用Picasso加载图片

来自分类Dev

存储过程第一次显示错误