aka*_*ash 2 c++ pointers const
#include <iostream>
using namespace std;
int main(void)
{
const int a1 = 40;
const int* b1 = &a1;
int * c1 = (int *)(b1);
*c1 = 'A';
cout<<*c1<<endl;
cout<<a1<<endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
O/P:
65
40
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释输出吗?
你正在做的是抛弃const(变量a1)某事物的常数.这导致未定义的行为(UB).实际上,这意味着任何事情都可能发生.你观察到的是"任何事物"的一种表现形式.
通常,涉及UB的问题的答案包括可能发生的疯狂事件的疯狂例子.我将通过避免这种做法来打破传统.