C++:带有cout和指向char的指针的无法解释的行为
C++: Unexplainable behavior with cout and pointer to char
打印指向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.让我感到困扰的是,如果我事先包含行cout << "&i: " << &i << endl;
,输出如何只打印"q"。但是,如果我对这一行进行注释,那么输出中就会有垃圾数据。当我包含行cout << "&i: " << &i << endl;
时,为什么我的输出中没有垃圾数据?
位&q
认为它是一个字符串。
因此将打印到空字符。因此额外的输出
相关文章:
- C++指针无法在函数外部传递值和分段错误(核心转储)错误
- 从纯虚拟类 (A) 派生的指针无法访问来自纯类 (B) 的重载方法
- C++指针无法更改其原始值
- 无法解释以下C++代码段的输出
- 递增空指针无法正确设置值
- 如果基类指针无法访问派生类成员函数,那么多态性有什么方便的呢?
- 指向字符串的指针无法更改字符
- 继承的共享指针无法get_widget
- 数组中无法解释的最后一个项目
- 可视C++打印指针无法确认显示基础
- 结构中的矢量指针无法转换主要中的矢量有什么问题?
- 对于相同的精确计算,无法解释的不同OMP_GET_WTIME()
- C 常量无法解释的行为
- C 无法解释的类“尚未声明”错误,这是由于名称空间而导致的
- [C++]重新定义 y 值的基本数组代码。它正在工作,但无法解释为什么
- std::future::wait 是内存障碍吗?(我无法解释这种数据竞赛)
- 模板化方法指针 - 无法匹配函数参数的指针
- unsigned int/signed int/long-long:无法解释的输出
- C++:带有cout和指向char的指针的无法解释的行为
- 不知道这个指针可能指向什么,也无法解释结果