Dev*_*Dev 1 c printf structure output
我正在检查C代码的一些输出.代码是:
main()
{
struct temp
{
int a;
float b;
}t;
t.a = 5;
t.b = 2.0;
printf( "%d %d %f" , t, t.a ,t.b); // printing 5 0 0.0000000 ...why??
printf( "%d %f %d" , t.a, t.b ,t); // printing 5 2.000000 5
}
Run Code Online (Sandbox Code Playgroud)
这个程序的输出是什么?打印什么"t"?如果行为未定义,那么在某个C标准中给出的行为将是未定义的.
是的,这是一个未定义的行为.以下是该标准的相应部分:
fprintf功能如果转换规范无效,则行为未定义.如果任何参数不是相应转换规范的正确类型,则行为未定义.
| 归档时间: |
|
| 查看次数: |
109 次 |
| 最近记录: |