首先猜猜看这两份代码的输出是一样的吗?
#include <iostream>
using namespace std;
int main()
{
string s="a";
int k=s.length()/2-1;
cout<<k;
}
#include <iostream>
using namespace std;
int main()
{
string s="a";
cout<<s.length()/2-1;
}
答案是:不一样!!!
第一个的输出:
第二个的输出:
为什么会出现这种情况呢?原因就在于第一份代码用了一个int类型的变量去接受,然而第二份代码当中我们并没有用一个变量去接受,这就导致算出来理论上虽然是负数,但在程序在却变成了一个极端溢出值。