```int i,max,a[5]={10,5,20,31,4}; max=a[0]; for(i=0,i<5,i++) if (a[i]>max) max=a[i]; printf("%d",max); return 0;
```在for(i=0,i<5,i++)后面加;后这组代码变成了什么意思?为什么输出结果是32767? for()后面加;后变成了什么意思?
同学你的代码能编译通过吗? for循环里面不应该是有共计两个分号么。
i一开始等于零每次经过加1,也就是说如果不<5他就不执行了
首先你的变量声明后没有加分号,其次你的max没有初始化,但是你又在后面的语句中访问了max的值,这是未定义的行为,会导致无法预知的情况发生。
就是相当于少了for的循环子语句,一直执行for循环,知道条件结束,跳出来继续执行下面的语句。
相当于一直在运行for循环里面的条件,从起始到for循环条件的结束,不运行for循环以外的代码
//这样才算正确!你的那个for(;;**)分号少了,不能写成逗号
int main(void)
{
int i,max,a[5]={10,5,20,31,4};
max=a[0];
for(i=0;i<5;i++)
{
if(a[i]>max)
max=a[i];
}
printf("%d",max);
}
int main(void)
{
int i,max,a[5]={10,5,20,31,4};
max=a[0];
for(i=0;i<5;i++)
{
if(a[i]>max)
max=a[i];
}
printf("%d",max);
}
{$ item.file.size/1024/1024|number:2 $} MB