逗号表达式引起的疑问:解决办法

逗号表达式引起的疑问:
#include   <stdio.h>
void   main()
{
void   list(int   *   a,int   n);
int   score[5]={60,80,90,70,50},i,*p=score;

printf( "Score:\n ");
for(i=0;i <5;i++)
printf( "%d\t ",*(p+i));
printf( "\n ");

list(p,5);
for(i=0;i <5;i++)
printf( "%d\t ",*(p+i));
printf( "\n ");
}

void   list(int   *   a,int   n)
{
int   i,t;
for(i=0;i <n/2;i++)
t=a[i],a[i]=a[4-i],a[4-i]=t;
}

式中逗号表达式:t=a[i],a[i]=a[4-i],a[4-i]=t;若换为分号表达式:t=a[i];a[i]=a[4-i];a[4-i]=t;可以吗?为什么?

------解决方案--------------------
不可以
t=a[i],a[i]=a[4-i],a[4-i]=t; 这是一句(功效相当于3句) 因为for后面无大括号,所以跟在for后面相当于
for(...){
t=a[i],a[i]=a[4-i],a[4-i]=t;
}

t=a[i];a[i]=a[4-i];a[4-i]=t;是3句,跟在无大括号的for后面相当于
for(...){
t=a[i];
}
a[i]=a[4-i];
a[4-i]=t;