关于c语言for循环的问题

来源:百度知道 编辑:UC知道 时间:2024/06/04 17:31:22
比如说这个for循环
for(i=1;i<=n;++i)
for(j=1;j<=n;++j)
{
c[i][j]=0;
for(k=1;k<=n;++k)
c[i][j]+=a[i][k]*b[k][j]
}
这个程序在执行for循环是 i j k 是先自加再执行语句还是执行后再自加
就像第一次循环话括号内是c[2][2]=0还是c[1][1]=0
谢谢高手解决
4楼的回答看不懂啊 能不能详细点谢谢~

i++是先引用变量的值再加一,比如如果i=0,则执行这条语句:b=i++,那么先是b=0,接着再执行i=i+1。而++i则相反,同样是前述语句的话,首先执行i=i+1,再执行b=i,也就是执行后b=1。
因而你说的语句是先自加,再执行。但是执行括号内的循环条件还是首先c[1][1]=0,因为执行这部分语句的时候,首先i=1,判断i<=n,如果满足,则执行for之后的下一条语句,当第二次循环的时候,才会执行到++i,然后判断是否满足i<=n。不知道这样的回答是否让你满意呢,呵呵!

for (i=1;i<=n;++i)
首先执 | |
行它, | |
仅在循 | |——————条件满足,执行过循环体内容后执行该语句,
环前执 | 每次循环结束执行。
行1次。|
每次循
环开始
前执行
条件若
不满足
直接跳
出该循
环。

第一次循环内是c[1][1]=0

先+再执行 如果是i++ j++ k++就是先执行一次后再加 第一次循环话括号内是c[2][2]=0

先执行后自增,在这里它和i++,j++没区别。

是先加再执行的

这里的++i ++j和i++ j++ 无别