小白发问:为什么k最后是3不是4?

#include<stdio.h>

int main()
{
int i=1,j=2,k=3;
if(i++==1&&(++j==3||k++==3))
printf("%d %d %d\n",i,j,k);
return 0;
}

因为你写的是++j==3||k++==3,中间是或只要满足一个就会输出,所以++j在前面面满足了j=3,k++就不运行了直接输出

|| 只要满足前一个条件,就不会再执行后面的了,你可以换成 | 比较一下,后面这个都会执行