第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

同一地址的變量如何產(chǎn)生2個(gè)不同的值?

同一地址的變量如何產(chǎn)生2個(gè)不同的值?

C++
溫溫醬 2019-08-14 15:57:53
同一地址的變量如何產(chǎn)生2個(gè)不同的值?考慮一下:#include <iostream>using namespace std;int main(void){     const int a1 = 40;     const int* b1 = &a1;     char* c1 = (char *)(b1);     *c1 = 'A';     int *t = (int*)c1;     cout << a1 << " " << *t << endl;     cout << &a1 << " " << t << endl;      return 0;}這個(gè)輸出是:40 65 0xbfacbe8c 0xbfacbe8c除非編譯器進(jìn)行優(yōu)化,否則這對(duì)我來(lái)說(shuō)幾乎是不可能的。怎么樣 ?
查看完整描述

3 回答

?
30秒到達(dá)戰(zhàn)場(chǎng)

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超6個(gè)贊

這是未定義的行為,您正在修改const變量,因此您不能期望結(jié)果。我們可以通過(guò)轉(zhuǎn)到草案C ++標(biāo)準(zhǔn)部分7.1.6.1 cv-qualifiers4段來(lái)看到這一點(diǎn):

[...]任何在其生命周期內(nèi)修改const對(duì)象的嘗試(3.8)都會(huì)導(dǎo)致未定義的行為。

甚至提供了一個(gè)例子:

const int* ciq = new const int (3); // initialized as requiredint* iq = const_cast<int*>(ciq); // cast required*iq = 4; // undefined: modifies a const object

在部分中未定義行為的標(biāo)準(zhǔn)定義中1.3.24,給出以下可能的行為:

[...]允許的未定義行為包括完全忽略不完全結(jié)果的情況,在翻譯或程序執(zhí)行期間以環(huán)境特征(有或沒有發(fā)出診斷消息)的文件化方式行事,終止翻譯或執(zhí)行(發(fā)出診斷消息)。[...]


查看完整回答
反對(duì) 回復(fù) 2019-08-14
?
慕標(biāo)琳琳

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超9個(gè)贊

您的代碼具有未定義的行為,因?yàn)槟谛薷某A繉?duì)象。什么都可能發(fā)生,沒有什么是不可能的。


查看完整回答
反對(duì) 回復(fù) 2019-08-14
?
森林海

TA貢獻(xiàn)2011條經(jīng)驗(yàn) 獲得超2個(gè)贊

當(dāng)你對(duì)變量const進(jìn)行限定時(shí),編譯器可以假定一些事情并生成代碼,這可以正常工作,只要你尊重協(xié)議而不是破壞協(xié)議。當(dāng)你破壞它時(shí),你會(huì)得到未定義的行為。

請(qǐng)注意,const刪除后,它按預(yù)期工作; 這是一個(gè)實(shí)例


查看完整回答
反對(duì) 回復(fù) 2019-08-14
  • 3 回答
  • 0 關(guān)注
  • 583 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)