-11
int a = 8;

if (a==8)
    printf("x");
else 
    printf("y");

虽然a等于8,但它输出y

4

1 回答 1

5

上面的代码总是打印x. 如果您的代码打印了其他内容,那么您在问题中省略了重要信息。

要找出可能是什么,试试这个:

  1. #undef a在之前插入int a = 8;以确保没有与代码混淆的 C 预处理器宏。

  2. 交换条件以查看是否a真的是您所期望的:

    if( 8 == a )
    

    这个小技巧还可以防止你意外分配错误(if( a = 8 )

于 2012-08-14T07:43:08.703 回答