这两个结果有什么区别?我见过这样的事情,但根本不明白。想象一下下面的程序:
int main() {
vector<int> v(4);
for (int i = 0; i < 4; i++) v[i] = i;
cout << v[3] << endl;
cout << v[3] - '0';
return 0;
}
v[3] 将返回 3 v[3]-'0' 将返回 -45
我只是好奇这个
最佳答案
答案是正确的,除了没有人提到原因,C++ 整数提升需要 char
类型提升为 int
在v[3] - '0'
表达式,如果类型不同(例如 vector<char> v(4)
),答案也会完全不同。
关于c++ - 不确定这段代码在做什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4462473/