1. ホーム
  2. c

[解決済み] C言語におけるポインタと整数の比較

2022-02-08 05:14:39

質問

C言語でのプログラムについて、少し愚かな質問があります。 警告: ポインタと整数の比較 . なぜなのか、本当にわかりません。 私は各文字を画面に書きたいだけなのです。

私のコード

int i = 0;
char str[50] = {'s', 'a', 'm', 'p','l','e'}; //only for test
while (str[i] != NULL) {
    putchar(str[i]);
    i++;
}

助けてください。インターネットでは有用な回答が見つかりませんでした。

解決方法を教えてください。

NULL はポインターであり str[i] はstr配列のi番目の文字です。charは整数型であり、比較すると警告が出ます。

文字列の終わりをチェックしたいのであれば、値0(文字列の終わり)を持つ文字列をチェックすればよいのでしょう。 '\0' .

しかし、文字列としてではなく、単に文字の配列として定義しているため、これは役に立ちません。また、文字配列の終端である0を定義していません(暗黙的に定義されているのは幸運です)。

PS: 次回は、少なくともコンパイラが文句を言っているところの情報を提供すべきです。