我不理解使用return 0*
语句吗?
试图在Google上寻找答案
return 0*printf("%d",a[i]);
我不明白结果。
答案 0 :(得分:1)
那么对我来说
return 0*printf("%d",a[i]);
只是一种不良的编程风格。
至少最好改写
return ( printf("%d",a[i]), 0 );
不说
printf("%d",a[i]);
return 0;
也许此语句是在递归函数中找到的。
关于你的问题
难以理解代码行的输出-
然后此行输出整数数组i-th
的{{1}}元素的值并退出相应的函数。
答案 1 :(得分:0)
TL / DR -将a[i]
的值写入标准输出,乘以0
写入的字符数,然后返回结果...始终0
。
我想查看上下文中的其余代码-基于这一行代码没有意义,但也许在上下文中看起来有点荒谬。
printf
返回写入输出流的字符数(字节),因此这是将a[i]
的值写入标准输出,将写入的字符数乘以0
,并返回结果... 始终为0
,因此,再次孤立地显示这一行没有任何意义。
我很难想到一个用例,在这种情况下这是合乎逻辑的,但这并不意味着没有用例。也许作者想要确保即使发生错误也能显示a[i]
的值,但为什么不这样做
if ( error_occurred )
{
printf( "%d", a[i] );
return 0;
}
在那种情况下?
作者可能打算将print语句与return并发执行,在这种情况下,他们不了解C的工作原理。可能是作者将简洁代码与快速代码混淆了,在这种情况下,他们仍然不了解C的工作原理。
或者也许作者出于棘手的缘故而变得棘手。