亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

c++const 常量放在哪里

c++const 常量放在哪里

C++
SMILET 2018-11-07 14:14:30
#include<iostream>int main(){    const int a = 10;    int *p = NULL;    p = (int *)&a;    *p =11;    printf("a=%d",a);    return 0;}在C語言里面 可以通過 指針來間接修改a得值 在C++里面 卻不行在C++里面 這個常量放在 什么位置 為什么不能通過地址不能修改a的值
查看完整描述

3 回答

?
守著星空守著你

TA貢獻1799條經驗 獲得超8個贊

你好,你的代碼我測試了。你說的情況確實存在。就我的理解,C++比C更加嚴格,const所修飾的變量是不允許修改的。

const int x; /* uninitialized const compiles in C but fails in C++*/

就上面一句代碼,在C中是可以通過的,但是在C++中是不可以的。

在C++里面,你可以使用一個指針指向一個常量,但是不能修改常量的值。


查看完整回答
反對 回復 2018-11-14
?
阿波羅的戰車

TA貢獻1862條經驗 獲得超6個贊

const不是不可修改么


查看完整回答
反對 回復 2018-11-14
?
不負相思意

TA貢獻1777條經驗 獲得超10個贊

C++里面const 常量是放在符號表里面的。你用指針改的話編譯器會為這個常量分配一次地址 你改這個地址的內容 跟常量沒有關系,然后我問他符號表在內存的什么位置? 他說符號表 是編譯器處理的,他沒做過編譯器,所以他不知道放在什么地方。 over

查看完整回答
反對 回復 2018-11-14
  • 3 回答
  • 0 關注
  • 938 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號