C语言中的一些基础问题。

  1. 下面的程序是什么意思?是左结合还是右结合?
    int a=5,b=4,c=3,d;
    d=(a>b>c);
    printf("%d\n",d);
    
  2. 下面的程序又是什么意思呢?
  int a=1,b=2,m=0,n=0,k;
   k=(n=b>a)||(m=a<b);
   printf("%d,%d\n",k,m);

3.什么情况下for循环后面不加花括号?还有其他情况吗?
例如:

for(i=0;i<9;i++)  
            switch(i)
                {  
                    case 0: printf("%d",i);
                    default: printf("%d",i);      
                }

4.下面的结果为什么不是3,2,0?z为什么不是0?--z和z--对于z的本身的值来说不应该是一样的吗?

#include <stdio.h>
int main( )
{
    int x=0,y=5,z=3;
    while(z-->0 && ++x<5)
    {
        y=y-1;
    }
    printf("%d,%d,%d\n",x,y,z);
    return 0;
}

5.能问下下方的t算的是什么吗?

#include <stdio.h>
int main()
{ 
     int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=0;
     for(i=0;i<3;i++)
         for(j=i;j<=i;j++)
           {
                t=t+[t][j];
                printf("%d\n",t);
           } 
     return 0;
}

向大家请教下,谢谢!

Q1、Q2希望您跑一跑,对你有好处
Q3:for循环下面只有一个过程的时候不用加花括号,这里一个过程可以是一个赋值、一行运算、一个switch、一个if等等,记住是一个过程
Q4:z-->0代表先用z和0比较一下,比较完再进行减法操作,例如z当前为1,那么先进行1>0的判断,之后再将z--为0。而--z>0代表先进行减法操作,然后再将z与0比较,例如z当前为1,那么先将z--为0,之后再进行0>0的判断。显然是不一样的。
Q5:矩阵的主对角线元素之和,称为矩阵的迹,用tr[b]表示