cout<<"dbba" - "bcx";
在C ++中,这里的输出是-5。
我想知道此输出是如何计算的?
答案 0 :(得分:6)
代码的行为是不确定的。
字符串文字的类型分别为const char[5]
和const char[4]
。这些 decay 指向const char*
的指针,因为它们是二进制运算符-
的参数。
计算两个指针之间的差是不确定的,除非它们指向同一数组中的元素(或指向数组最后一个元素之外的元素)。在这种情况下,可以将一个对象视为一个单元素数组。