我只是无法得到它。 char是一个整数,对不对? 所以我可以做
int var;
scanf("%d", &var);
I:[65]
printf("%c", var);
o:[A].
那么为什么wrog做:
char var;
scanf("%d", &var);
I:[A]
printf("%d", var)
O:[-1236778]
我只是无法得到它。 char是一个整数,对不对? 所以我可以做
int var;
scanf("%d", &var);
I:[65]
printf("%c", var);
o:[A].
那么为什么wrog做:
char var;
scanf("%d", &var);
I:[A]
printf("%d", var)
O:[-1236778]
在第二个scanf()
scanf("%d", &var);
的scanf()
解析的打印指令%d
。 这意味着争论&var
预计地址的int
。 相反,地址为char
给出。 一个规模int
肯定比一的大小大char
。 由于scanf()
试图将放在int
尺寸量为只是针对一个“炭”的地方,奇怪的事情都可能发生的scanf()函数可以将数据是不应该的地方。 试图把10磅土豆PF在5磅重。
进一步-看来值得怀疑scanf("%d", &var);
成功读取输入“A”。 scanf()
将看到A
,而因为它不是一个数字,将放弃扫描,以满足一个文本输入int
定义。 因此,你scanf("%d", &var)
可能返回的值0
,因此没有放入任何 var
。 保存您的熏肉,因为如果它没有,它会放在空间应该不是数据。
最后printf("%d", var)
然后简单地打印出var
,其从未设定,让你获得什么恰好是焦炭。 -1236778
似乎不太可能。 我怀疑该职位不匹配代码或在一些小步伐的输入/输出。