参考:
https://blog.csdn.net/hailong0715/article/details/54018002
代码:
#include <iostream> int main(int argc, char* argv[]) { int a = 1.1; int b{1}; //int b{1,1}; float f1 = 1e40; float f2{10.0}; //float f2{1e40}; const int x = 1024, y = 1; int dd{x}; char c = x; // char d{x}; char e = y; char f{y}; return 0; }
对应的编译结果:
g++ -std=c++11 initialization3.cpp -o initialization3 initialization3.cpp:5:11: warning: implicit conversion from 'double' to 'int' changes value from 1.1 to 1 [-Wliteral-conversion] int a = 1.1; ~ ^~~ initialization3.cpp:16:12: warning: implicit conversion from 'const int' to 'char' changes value from 1024 to 0 [-Wconstant-conversion] char c = x; ~ ^ 2 warnings generated. bash-3.2$ bash-3.2$ g++ initialization3.cpp -o initialization3 initialization3.cpp:5:11: warning: implicit conversion from 'double' to 'int' changes value from 1.1 to 1 [-Wliteral-conversion] int a = 1.1; ~ ^~~ initialization3.cpp:6:8: error: expected ';' at end of declaration int b{1}; ^ ; initialization3.cpp:10:11: error: expected ';' at end of declaration float f2{10.0}; ^ ; initialization3.cpp:15:9: error: expected ';' at end of declaration int dd{x}; ^ ; initialization3.cpp:21:9: error: expected ';' at end of declaration char f{y}; ^ ; initialization3.cpp:16:12: warning: implicit conversion from 'const int' to 'char' changes value from 1024 to 0 [-Wconstant-conversion] char c = x; ~ ^ 2 warnings and 4 errors generated.