警告:文字列定数から「char *」への非推奨の変換



Warning Deprecated Conversion From String Constant Char



周囲: Linuxでg ++を使用してコンパイルする

エラー: 警告:文字列定数から「char *」への非推奨の変換



意味 :文字列定数(char *)に変換された文字列(string)を受け入れません

エラーコード:



#include using namespace std void print(char *s) { cout<

分析:

関数printの仮パラメータは文字列のアドレスを表すchar * sであるため、つまり、print関数がmain関数で使用されている場合、文字列は文字列アドレスsによって変更できます。これはprintの実際のパラメータです。 ( 'xiaomi')は文字です。文字列定数は変更できないため、コンパイラは警告します。

解決:



方法1:関数printの仮パラメーターをprint(const char * s)に変更します。これは、文字列の値をポインターsを介して変更できないことを意味します。

方法2:printを使用する場合、使用する前に次のように文字列配列char temp [20]を定義できます。

char temp[20]='xiaomi' print(temp)

方法3:文字列を使用する

方法4:過負荷。