gpt4 book ai didi

C++:cout 和指向 char 的指针的无法解释的行为

转载 作者:太空狗 更新时间:2023-10-29 21:35:43 27 4
gpt4 key购买 nike

<分区>

打印一个指向 int 的指针后,我打印一个指向 char 的指针:

#include <iostream>

using namespace std;

int main() {

int i;
cout << "&i: " << &i << endl;

char q = 'q';
cout << "&q: " << &q << endl;

return 0;

}

我按预期得到以下输出:

&i: 0xffffcc0c
&q: q

但是,如果我注释掉 cout << "&i: " << &i << endl; ,然后再次运行该程序,我得到以下无法解释的输出:

&q: q����

有人知道为什么会这样吗?

如果与operator<<有关插入到流中直到找到空字符,那么当我包含 cout << "&i: " << &i << endl; 时为什么会得到预期的输出? ?

注意:我不希望从 cout 获得 q 的地址。我期望得到 &q 指向的 C 字符串。让我感到困扰的是,如果我包含 cout << "&i: " << &i << endl; 行,输出如何只打印“q”预先。但是,如果我注释掉那一行,输出中就会有垃圾数据。当我包含行 cout << "&i: " << &i << endl; 时,为什么我的输出中没有垃圾数据? ?

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