下列程序段输出的结果

int x=5;
if(x=4) printf("true");
else printf("flase");

true
因为是if(x=4),不是if(x==4)

if(x=4), x=4 是赋值,等同于if(4) ,c语言里非 0 即为真,所以输出 true

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7705757
  • 这篇博客也不错, 你可以看下编写一个程序,输出以下图案
  • 除此之外, 这篇博客: 指针总结中的 下列程序的输出结果是 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • int main( )
     {
         char *p1, *p2, str[50]="xyz";
         p1="abcd";
         p2="ABCD";
         strcpy(str+2,strcat(p1+2,p2+1));
         printf("%s",str);
        return 0
     }
    
    • 这道题的答案是xycdBCD,我刚开始不理解为什么调用strcpy之后会保留Xy,其实是因为str数组向后移动了两位,所以是从它的第三个字母开始复制。