c const 關(guān)鍵字疑問(wèn)

科技 未結(jié) 6 552

const int a = 3; int* p = (int *)&a;*p = 4;printf("a-------%d------", a); printf("*p-------%d------", *p); printf("&a-------%d------", (int)&a); printf("p-------%d------", (int)p);

輸出:

a-------3------ *p-------4------ &a-------1606416268------ p-------1606416268------

問(wèn)題是 const 修飾a變量后,a 不能修改,但是可以隱式修改a 的值,就是用指針。 我用指針修改了值,為什么輸出的時(shí)候 a 沒(méi)有改變。*p 的值改變了。

6條回答
  •  asd137880673
    2023-01-10 17:13

    因?yàn)檫@本身就是ub,你這么做究竟能導(dǎo)致什么結(jié)果,編譯器是不會(huì)給你保證的。

提交回復(fù)