2017-10-24 9 views
-5

一重引用符を使用せずに文字変数を宣言するとどうなりますか?例えばため:CでCで引用符なしの文字変数を宣言

char ch=5; 
char ch= a; 
+2

CコンパイラまたはC言語標準に問い合わせてみてください。 – adrianN

+3

これは非常に悪い質問です。あなたはそれについてここに投稿する前に、言語の構文についての最小限の研究をしたことが期待されます。 –

+1

質問は多くの研究努力を示していませんが、この質問に対する答えを見つけることは実際には簡単ではありません。だから誰かがそれを見つけたら、おそらくここに複写があります。 – hyde

答えて

1

charタイプは、通常、8ビット幅、符号付きまたは符号なしコンパイラに依存し、ちょうど整数です。

「文字」は、これらの数字が意味する「テキストエンコード」の意味での合意に過ぎません。今日一般的に使用されている8ビットのテキストエンコーディングは、ASCIIに基づいています。そこから値5が印刷不能な制御文字(今日は好奇心を除いて実際的な関連性を持たないENQ, with historical meaningと呼ばれている)であることを確認することができ、印刷可能な文字'5'はASCIIエンコーディングの数値53を持つ。


のは、あなたの質問に2行のコードを説明してみましょう:

char ch=5;はタイプcharの変数chを定義し、数値リテラル5、で初期化します。そのようなリテラルとして認識されるのは、数字で始まるからです。

char ch= a;はタイプcharの変数chを定義し、変数aの値で初期化します(まだ定義されたaが存在しない場合は、コンパイラエラーが発生します)。 aここにはシンボル名(おそらく変数名)があり、文字文字(アンダースコアもOK)で始まるので、そのように認識されます。

関連する問題