私はそれを得ることができません。Char は整数ですよね?だから私はできる
int var;
scanf("%d", &var);
I:[65]
printf("%c", var);
o:[A].
なぜそれをするのですか?
char var;
scanf("%d", &var);
I:[A]
printf("%d", var)
O:[-1236778]
第二にscanf()
scanf("%d", &var);
解析されたscanf()
print ディレクティブ%d
。これは、引数 &var
が へのアドレスであると予想されることを意味しますint
。代わりに a へのアドレスchar
が与えられました。のサイズint
は確かに のサイズよりも大きいですchar
。「char」専用の場所scanf()
にサイズを配置しようとすると、 scanf() がデータを配置すべきではない場所に配置する可能性があるため、奇妙なことが発生する可能性があります。int
10 ポンドのポテトを 5 ポンドの袋に入れようとしています。
scanf("%d", &var);
さらに、入力「A」 を正常に読み取れたかどうかは疑わしいようです。scanf()
が表示され、数字ではないため、定義A
を満たすテキスト入力のスキャンを断念します。int
したがって、scanf("%d", &var)
おそらく の値が返されたため、 には何も配置され0
ませんでした。ベーコンを保存すると、データが配置されるべきではないスペースに配置されます。var
最後は、設定されていない をprintf("%d", var)
単純に出力するだけなので、たまたま char に あったものが得られます。ありそうにない。投稿がコードや入力/出力と少しのペースで一致していないと思われます。var
-1236778