c++ - 不确定这段代码在做什么

标签 c++

这两个结果有什么区别?我见过这样的事情,但根本不明白。想象一下下面的程序:

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类型提升为 intv[3] - '0'表达式,如果类型不同(例如 vector<char> v(4) ),答案也会完全不同。

关于c++ - 不确定这段代码在做什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4462473/

相关文章:

c++ - 将 C++ lambda 复制到函数指针引用

c++ - 插入失败时列表/ map 返回什么?

c++ - 检查动态链接库是否过时

c++ - pcap_dump 函数在与 pcap_loop 一起使用时不会被调用,pcap_dispatch 总是返回 0

c++ - 使用 jsoncpp 将 json 数据增量写入文件

c++ - 如何解决有关迭代器构造函数的一系列错误,涉及预期左值、缺少转换和可行性

c++ - HMODULE 重建导入地址表 IAT 时处理错误

c++ - (float)(1.2345f * 6.7809) 是否比 1.2345f * 6.7809f 更准确?

c++ - C++ char* 比较如何工作?

C++ 转换问题