无定义行为和由实现定义的行为
C++语言的未定义情况集中在:
例子:
C++语言的未定义情况集中在:
- 某些运算符的运算顺序
- 直接使用未初始化的局部变量或对象中的值
- 直接使用未初始化内存中的值,或者使用已经释放内存中的值
- 内存访问越界
- 强制类型转换中的未定义情况
例子:
const int array_size = 10;
int a[array_size];
int i = 0;
int b = a[i++]+a[i++]+a[i++]; //运算顺序
a[10] = 9; // 内存访问越界
int ia ;
int ib = ia; // 未初始化的变量