int a = 1 ;
int*p = &a;
(*p) = 2;
如果&a是6422312,并且我想将6422312中的值更新为2(int),但仍保持int a = 1的值
因此,我想让&a变为6422316并分配值1,即以后无论是否在64222312中,我都想使用与1相同的名称。
//how can I do this
&a => 6422316
*(&a) <- 1;
我知道如果将“ a”当作指针,我可以轻松地做到这一点,但是我想知道是否可以使用该变量来做同样的事情。
答案 0 :(得分:0)
您无法控制C
中变量的地址(自定义编译器扩展除外)。这意味着您无法选择其地址。编译器会这样做。此外,C
中的变量在其生存期内不会更改其地址。
答案 1 :(得分:0)
您只能做的一点与描述类似的是指针算术。因此,假设您有一个指针p
,并且想要将sizeof *p
之后p
个字节的值更改为42,然后使用*(p+1) = 42
。