我创建了一个struct变量。一个例子是:
struct numbers
{
float start;
float end;
int middle;
}values;
int main()
{
scanf("%f %f %d", &values.start, &values.end, &values.middle);
printf("%f %f %d, &values.start, &values.end, &values.middle);
}
当我尝试通过用户输入将值读入这些变量时,例如" 0 5.8 3"。当我尝试打印时,它看起来像这样
0.000000 0.0000000 -26148776(每次运行程序时最后一个数字都会更改,其余的数字保持为0)
如何解决此问题?
提前致谢!
答案 0 :(得分:2)
scanf
family函数需要指针,因此它知道存储结果的位置。
printf
family函数打印 值 ,因此不需要指针。
如果printf
格式规范与参数不匹配,则会导致未定义的行为。
因此,简单的解决方案是不要在&
调用中使用地址运算符printf
作为参数。