
大家看看咋回事呢?為什么不能使用char*這個字符型指標了呢?
uj5u.com熱心網友回復:
因為“hello”這個立即字串常量區中的是不允許被修改的。你用一個char*指標這么取指著它是不安全的。因為char*指標可以取修改指向的值。
其實也只是一種語法上的約束,實質上沒什么不可以指向的。
你可以用一些騷操作讓他指向,只不過指向之后萬一你不小心嘗試去改這個字串常量的話,就涼涼咯。
所以語法、或者說編譯器約束你不要這個干。
uj5u.com熱心網友回復:
這個是編譯器的約束,老的編譯器可以這樣,你加一個const就可以了,這樣更安全。本質上這個記憶體也不允許你修改的uj5u.com熱心網友回復:
就跟 int&r=42;一樣陳述句是錯的,個人理解編譯器怕你改變常量的值,同理char*c="hello"也是一樣的,可以使用安全的強制轉換char* c =const_cast<char*>("hello");轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/104397.html
標籤:C++ 語言
上一篇:看題
下一篇:約瑟夫問題
