为什么允许使用 memcpy 的指针更改 const 变量?
这段代码:
const int i=5;
int j = 0;
memcpy(&j, &i, sizeof(int));
printf("Source: i = %d, dest: j = %d\n", i,j);
j = 100;
memcpy(&i, &j, sizeof(int));
printf("Source: j = %d, dest: i = %d\n", j,i);
return 0;
编译时只有一个警告:
警告:传递 'memcpy' 的参数 1 会丢弃指针目标类型中的 'const' 限定符 [默认启用]
但确实运行得很好,并更改了 const 变量的值。