【发布时间】:2026-02-12 17:35:01
【问题描述】:
如果您尝试 cout 指向 volatile 类型的指针,甚至是您通常期望 cout 打印字符串的 volatile char 指针,您将改为简单地得到 '1'(假设指针不为 null 我认为)。我假设输出流 operator
示例代码:
#include <iostream>
#include <cstring>
int main()
{
char x[500];
std::strcpy(x, "Hello world");
int y;
int *z = &y;
std::cout << x << std::endl;
std::cout << (char volatile*)x << std::endl;
std::cout << z << std::endl;
std::cout << (int volatile*)z << std::endl;
return 0;
}
输出:
Hello world
1
0x8046b6c
1
【问题讨论】:
标签: c++ pointers iostream volatile standards-compliance