【发布时间】:2022-01-16 20:14:06
【问题描述】:
我有下面的代码要求识别任何错误:
main( )
{
int kk = 65 ,ll ;
ll = ( kk == 65 : printf ( "\n kk is equal to 65" ) : printf ( "\n kk is not equal to 65" ) ) ;
printf( "%d", ll ) ;
}
我已将其更正如下:
int main( )
{
int kk = 65, ll ;
ll = kk == 65 ? printf ( "\n kk is equal to 65" ) : printf ( "\n kk is not equal to 65" );
printf( "%d", ll ) ;
}
我希望输出是 kk 等于 65,但是,我得到 'kk 等于 6519'
任何人都可以看看这个并帮我看看这个原因吗?
非常感谢,
克里斯 G
【问题讨论】:
-
printf( "%d", ll ) ;您希望打印什么,您是否将其考虑到您期望的输出中?建议在每个printf字符串的末尾添加一个\n,以使输出更清晰。 -
在使用
printf打印时,始终养成使用trailing 换行符的习惯。它不仅可以帮助您理解这里的问题,而且还可以在其他地方帮助您,因为当stdout(这是printf写入的流)连接到终端或控制台时,它将是 行缓冲。这意味着缓冲的输出将实际写入换行符。使用前导换行符打印 previous 行,使用尾随打印 current 行。
标签: c operators conditional-operator