1. 程式人生 > >invalid conversion from 'const char*' to 'char*'

invalid conversion from 'const char*' to 'char*'

const char*是指向常量的指標,而不是指標本身為常量,可以不被初始化.
該指標可以指向常量也可以指向變數,只是從該指標的角度而言,它所指向的是常量,
通過該指標不能修改它所指向的資料.

1.const char*是不能直接賦值到char*的,這樣編譯都不能通過,理由:假如可以的話,
那麼通過char*就可以修改const char指向的內容了,這是不允許的.

所以char*要另外開闢新的空間

string str = "dasfas";
char* p = (char*)str.c_str();

這個跟3樓的效果其實是一樣的。
還有就是把const指標,轉換成非const指標,目的不是為了修改指標指向的值,而往往是為了傳參的方便。不得已才使用的。


或者用 strcpy的方法