cout << ("s" + 'a');
这样一段代码,为什么输出是一个空行呢?
难道是 string literal + character
没有这个运算吗?
没有的话为什么输出是空行呢?
C++ 中, string literal
就是 const char[n]
吗?
cout << ("s" + 'a');
这样一段代码,为什么输出是一个空行呢?
难道是 string literal + character
没有这个运算吗?
没有的话为什么输出是空行呢?
C++ 中, string literal
就是 const char[n]
吗?
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答1.6k 阅读✓ 已解决
表达式
"s"
的类型是const char[]
,表达式'a'
的类型是char
。数组是不能进行内置加法运算的。所以
const char []
会被转换成const char *
,这里的运算就变成了"指针+整型"(char
是一种整型)。输出空行的运行结果实际上是数组越界引起的。