数组:同一行代码打印不同的答案?

时间:2016-11-14 14:35:40

标签: c arrays

我刚刚开始学习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;
}

感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

因为您将其打印为带有“%c”的字符。

试试这些:

printf("%d", 65);
printf("%c", 65);

然后查看ascii table。 然后阅读printf Format String。 祝一切顺利。

答案 1 :(得分:1)

考虑到在为其分配值之前使用G,它可以打印任何内容。您的格式也不同。