1
A
回答
2
const char*
表示該字符串的內容是不變的。你可以有不同的指針指向相同的常量內存。換句話說,指針是具有相同值的不同變量。請記住,指針的值是它引用的內存的地址。
所以,是的,上面的任務是完全有效的。
我不知道這個問題是否與你的previous question有關。你在這裏說:
我們可以將一個爲const char *到另一個修改的價值?
如果通過「修改值」的意思是修改字符串的內容(這是你想要在上一個問題中做的),那麼你不能。在這裏給出的例子中,你有兩個指針指向相同的常量內存塊。如果其中一個指針不能修改那個內存,那麼另一個指針也不能修改。
0
是的,它是完全有效的。
A const char *
表示指針指向的內容是常量,但它不會停止將指針指定給另一個指針,因爲這不會更改原始指針所指向的內容。
這給你兩個指針指向相同的內存位置。
|----------|
| c1 |
| | 1000
| 2000 |
|----------|
|
|
|
|
-------------------->|----------|
| num |
-------------------->| | 2000
| | 2 |
| |----------|
|
|
|----------|
| c2 |
| | 3000
| 2000 |
|----------|
你能砍周圍和修改const char *
指針的內容,但請注意,修改聲明爲未定義行爲常量結果的變量。
1
const char*
表示指向的字符串是常量。
char const*
表示指針本身是常量。
0
您已經知道,但值得重複的是:const
限定符是編譯器的指令。它與運行時間想要做的任何事情沒有任何關係。 const
的含義是:「嘿,編譯器先生:當我發現我修改這個變量時,請告訴我,我不是這個意思。」 AFAIK,編譯器在看到這種自毀性用法時會發出警告。我想你可能會讓編譯器在這種情況下發出一個平坦的錯誤。
相關問題
- 1. const char *仍然修改指向的值
- 2. C++ const char *指針賦值
- 3. 與指針爲const char []
- 4. 修改C中的const char *
- 5. 修改char * const字符串
- 6. 爲const char *指針運算警告
- 7. const指針指向一個const指針
- 8. 段錯誤時修改char * const pstr =「abcd」;
- 9. 問題與改變一個const char指針
- 10. const char * const char **
- 11. 指針數組與C&C++ const修飾
- 12. 修改函數指針
- 13. 修改指針值
- 14. char和char *(指針)
- 15. 指針被意外修改
- 16. 指向const的指針。指針改變,但const的沒有變化
- 17. 從const char *轉換爲char *修改VC++中的數據
- 18. 爲什麼我可以修改char const char *點?
- 19. const const指針參數的非const指針參數
- 20. 修改指針對象值在一個const方法
- 21. 通過指針修改一個const限定對象
- 22. 爲什麼我可以修改C中的const指針?
- 23. 修改結構體指針的指針
- 24. 創建指針的指針並進行修改而不修改原始指針?
- 25. 在const方法中通過非const指針自我修改自身
- 26. 指定NSData爲const char
- 27. const指針指向const數據的常量指針
- 28. 在c中修改char指針的值會產生段錯誤
- 29. swig char **作爲指向char *的指針*
- 30. Bitiwise Const和指針:
我將問題轉回原來的形式。你添加的內容被你的後續問題所覆蓋:http://stackoverflow.com/questions/7736049/const-char-pointer-assignments –