相关疑难解决方法(0)

508
推荐指数
8
解决办法
5万
查看次数

我们可以通过指针改变用const定义的对象的值吗?

#include <stdio.h>
int main()
{
    const int a = 12;
    int *p;
    p = &a;
    *p = 70;
}
Run Code Online (Sandbox Code Playgroud)

它会起作用吗?

c const undefined-behavior

28
推荐指数
4
解决办法
3万
查看次数

通过指针更改const的值

这个答案这个问题介绍了如何通过非关联化的指针,它的地址作品(显然是通过创建一个新的变量)改变一个常数变量.

const int i = 10;
*(int *)&i = 5;

std::cout << &i << "\t" << i << "\n";                   // 0x7fff6b325244   10

std::cout << &*(int *)&i << "\t" << *(int *)&i << "\n"; // 0x7fff6b325244   5
Run Code Online (Sandbox Code Playgroud)

随着&*(int *)&i我试图让以前的答案是谈论新的变量的地址.如何找到存储此新变量的位置?

*(int *)&i 显示不同的值,因此必须有一个新变量.

在g ++ 5.4.0,Ubuntu 16.04上编译

c c++ const constants

0
推荐指数
1
解决办法
102
查看次数