私はCを学び始めていると私は、次のような問題が発生した:配列:異なるコードを出力する同じ行のコードですか?
#include <stdio.h>
#define T 1
int G;
int main(void)
{
int arr[5] = {7,8,9,10,11};
int a;
printf("%d\n", G);
printf("%d\n", arr[T]);
printf("%d\n", arr[G]);
a = arr[T]*arr[G];
printf("%d\n",a);
printf("%c", arr[T]*arr[G]); //why is this answer printed differently from a?
return 0;
}
は、あなたの種類の助けに感謝!
あなたは '%d'と'%c'の違いを知っていますか? –
%cを使用すると、cは整数値に対応するASCIIキーを表示します。したがって、あなたのケースでは、ASCII値56(arr [1] * arr [0]、つまり7 * 8)が返されます。 –
なぜ 'G'に値がありませんか?これは*未定義の動作*です。 – usr2564301