首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么ostream会为定义为` `volatile char[]`的字符串打印`1‘?

为什么ostream会为定义为` `volatile char[]`的字符串打印`1‘?
EN

Stack Overflow用户
提问于 2014-07-03 21:39:56
回答 2查看 603关注 0票数 16

考虑这个(人工)示例:

代码语言:javascript
复制
#include <cstdio>
#include <iostream>

int main() {
  volatile char test[] = "abc";
  std::printf("%s\n", test);
  std::cout << test << "\n";
}

使用GCC编译并运行后,会得到以下输出:

代码语言:javascript
复制
$ g++ test.cc 
$ ./a.out 
abc
1

正如您所看到的,printf正确地打印字符串,而cout打印1。为什么在这种情况下写入cout会产生1

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24555288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档