use*_*436 2 c++ gcc type-conversion
我是否正确地理解bool到int投应该投true给1?
GCC 4.8.1为此代码提供了奇怪的结果:
#include <array>
#include <iostream>
int main()
{
using namespace std;
array<bool, 3> bb;
for ( int i = 0; i < 3; i++ ) cout << static_cast<int>( bb[i] ) << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这是我得到的:
>> g++ -std=c++11 test_bool.cpp -pedantic -O3
>> ./a.out
136
251
160
Run Code Online (Sandbox Code Playgroud)
我是否正确地理解
bool到int投应该投true给1?
是.
GCC 4.8.1为此代码提供了奇怪的结果:
那是因为你的程序有未定义的行为,因为你的数组没有被初始化.例如,试试这个:
array<bool, 3> bb = { true, false, true };
Run Code Online (Sandbox Code Playgroud)
你会看到一致的输出.这是一个实例.
| 归档时间: |
|
| 查看次数: |
690 次 |
| 最近记录: |