0

重複の可能性:
int c = getchar()?

#include <stdio.h>

   main()
   {
       int c;
       c = getchar();
       while (c != EOF) {
           putchar(c);
           c = getchar();
       }
   }

C の経験はありませんが、C++ は知っています。ここで 'c' が整数型として宣言されていることを確認したいのですが、驚くべきことに、このプログラムを実行すると、文字も受け入れられます。誰でも親切に説明できますか。

参照 : C プログラミング Ritchie/kernighan

4

2 に答える 2

2

偶数文字を受け入れます

実際には をgetchar()返すintので、ここでは問題ありません。

が返されたとしても、 とはchar両方とも同じ符号の整数型であり、よりも広いため、 anは常に暗黙的な変換を使用して a を格納できます(「アップキャスト」と呼ばれることもありますが、暗黙的であるため、実際にはキャストではありません)。基本的にこれが意味することはcharintintcharintchar

int n = 'a';

は完全に有効な C です。

于 2012-11-29T19:53:26.573 に答える
1

まず、ではなくをgetchar返します。intchar

次に、at 割り当てcharに拡張されます。int

于 2012-11-29T19:53:54.407 に答える