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

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

字符串文字:它們?nèi)ツ睦锪耍?/h1>

字符串文字:它們?nèi)ツ睦锪??我感興趣的是字符串文本的分配/存儲位置。我確實找到了一個有趣的答案這里,說:定義一個字符串內(nèi)聯(lián)實際上嵌入了程序本身的數(shù)據(jù),并且不能被更改(一些編譯器通過一個聰明的技巧允許這樣做,不要費心)。但是,它與C+有關(guān),更不用說它說不用麻煩了。我在煩你。=D所以我的問題是我的字符串文字在哪里以及如何保存?我為什么不試著改變它呢?實現(xiàn)是否因平臺而異?有人愿意詳細介紹一下“聰明的把戲”嗎?
查看完整描述

4 回答

?
qq_笑_17

TA貢獻1818條經(jīng)驗 獲得超7個贊

一種常見的技術(shù)是將字符串文本放入“只讀數(shù)據(jù)”部分,將其映射到進程空間作為只讀(這就是為什么不能更改它)。

它確實因平臺而異。例如,簡單的芯片結(jié)構(gòu)可能不支持只讀內(nèi)存段,因此數(shù)據(jù)段將是可寫的。

相反,嘗試找出一個使字符串文本可更改的技巧(它將高度依賴于您的平臺,并可能隨著時間的推移而改變),只需使用數(shù)組:

char foo[] = "...";

編譯器將安排從文字初始化數(shù)組,您可以修改數(shù)組。


查看完整回答
反對 回復(fù) 2019-05-30
?
牧羊人nacy

TA貢獻1862條經(jīng)驗 獲得超7個贊

這個問題沒有一個答案。C和C+標準只是說字符串文本具有靜態(tài)存儲時間,任何修改字符串的嘗試都會產(chǎn)生未定義的行為,具有相同內(nèi)容的多個字符串文本可能共享也可能不共享相同的存儲。

根據(jù)您正在為之編寫的系統(tǒng)以及它使用的可執(zhí)行文件格式的功能,它們可能與程序代碼一起存儲在文本段中,或者它們可能有一個單獨的段用于初始化數(shù)據(jù)。

根據(jù)平臺的不同,確定細節(jié)也會有所不同-很可能包括可以告訴你它放在哪里的工具。有些人甚至?xí)屇憧刂七@樣的細節(jié),如果你想要的話(例如,gnu ld允許你提供一個腳本來告訴它如何對數(shù)據(jù)、代碼等進行分組)。


查看完整回答
反對 回復(fù) 2019-05-30
?
達令說

TA貢獻1821條經(jīng)驗 獲得超6個贊

FYI,只是備份其他答案:

標準:ISO/IEC 14882:2003說:

2.13.字符串文字

  1. [.]普通字符串的類型為“數(shù)組”n const char“和靜態(tài)儲存時間(3.7)

  2. 是否所有字符串文本都是不同的(也就是說,存儲在不重疊的對象中)是實現(xiàn)定義的。試圖修改字符串文字的效果未定義。


查看完整回答
反對 回復(fù) 2019-05-30
  • 4 回答
  • 0 關(guān)注
  • 535 瀏覽

添加回答

了解更多

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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