ポインタで文字列を出力したいのですが(初心者です)

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
plum

ポインタで文字列を出力したいのですが(初心者です)

#1

投稿記事 by plum » 13年前

コンパイルしようとするとエラーが出てしまいます。
初心者向けの本を読んで同じコードを書いてるのですがどうしてでしょうか?

下記、エラー内容とコードになります。
よろしくお願いします。

:5:13: 警告: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
yoshiyuki@yoshiyuki-System-Product-Name:~/cworks$


コード:

 
#include <stdio.h>

int main(void)
{
	char *str= "hello";
	
	printf("文字列は%sです。\n", str);
	
	return 0;
	
}
 

beatle
記事: 1281
登録日時: 14年前
住所: 埼玉
連絡を取る:

Re: ポインタで文字列を出力したいのですが(初心者です)

#2

投稿記事 by beatle » 13年前

出ているのは「エラー」ではなくて「警告」です。
どちらも出ないほうが良いものですが、区別した方がいいと思います。

さて、出ている警告を解消するためには、6行目を

コード:

    const char *str= "hello";
と変更すればいいだろうと思います。

"hello"というのは、書き換え不可能の文字列データです。
string constant = 文字列定数 という意味です。

書き換え不可能なデータの置き場所を、普通のポインタ変数(char *型の変数)に格納しているために警告が出ています。
constを付けたポインタ変数にすれば、「このポインタ変数で示されるデータは定数であって、書き換えてはいけない」ということを明示できます。

plum

Re: ポインタで文字列を出力したいのですが(初心者です)

#3

投稿記事 by plum » 13年前

理解出来ました!

独りで勉強してると些細なつまづきが多くて、本当に助かりました!

アドバイスありがとうございます!

閉鎖

“C言語何でも質問掲示板” へ戻る