首页 > 解决方案 > 输出是如何计算的?

问题描述

cout<<"dbba" - "bcx";

这里的输出是 C++ 中的 -5。

我想知道这里的输出是如何计算的?

标签: c++c++11

解决方案


代码的行为是未定义的。

字符串文字分别是类型const char[5]const char[4]。这些衰减const char*指针,因为它们是二元运算符的参数-

计算两个指针之间的差异是未定义的,除非它们指向同一数组中的元素(或数组最后一个元素之外的元素)。在这种情况下,可以将对象视为单元素数组。


推荐阅读