为什么在运行代码时会得到以下结果:
Name: Zeref
Age: 20
Float: 20.11
-----
Name: Zeref
Age: 1072324272
Dec: 0.000000
代码:
#include <stdio.h>
#include <stdlib.h>
int main(void) {
char name[524288];
int age[524288];
float dec[524288];
printf("Name: ");
scanf("%s", name);
printf("Age: ");
scanf("%d", age);
printf("Float: ");
scanf("%f", dec);
printf("-----\n");
printf("Name: %s\n", name);
printf("Age: %d\n", age);
printf("Dec: %f\n", dec);
return 0;
}
我的话没听懂,为什么?
我希望它完全打印出我写的内容,但使用age作为一个整数,使用dec作为浮点数,并使用名称作为字符串。只有名字有效
答案 0 :(得分:1)
这只是将数组age的地址打印为十进制整数(实际上它引入了未定义的行为);
printf("Age: %d\n", age);
尝试一下
printf("Age: %d\n", age[0]);