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

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

為什么從字符串常量到'char *'的轉換在C中有效但在C ++中無效

為什么從字符串常量到'char *'的轉換在C中有效但在C ++中無效

C++ C
翻過高山走不出你 2019-12-18 16:26:57
C ++ 11標準(ISO / IEC 14882:2011)在§ C.1.1:char* p = "abc"; // valid in C, invalid in C++對于C ++,因為指向字符串文字的指針是有害的,因為任何對其進行修改的嘗試都將導致崩潰,這是有害的。但是為什么在C語言中有效呢?C ++ 11還說:char* p = (char*)"abc"; // OK: cast added這意味著,如果將強制類型轉換添加到第一條語句中,它將變為有效。為什么強制轉換使第二條語句在C ++中有效,它與第一條語句有何不同?還是有害嗎?如果是這樣,為什么該標準說沒問題?
查看完整描述

3 回答

?
HUX布斯

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

非常危險的是它沒有提供任何有意義的靈活性,至少對于(完全)關心可移植性的代碼而言。寫入字符串文字通常會使您的程序在現代OS上中止,因此允許代碼在此處嘗試寫入不會增加任何有意義的靈活性

查看完整回答
反對 回復 2019-12-18
  • 3 回答
  • 0 關注
  • 910 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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