C语言关于i++的问题,是在下次循环i加1,还是说遇到i时加1?
如(i++)*(i++)一开始i=1,那前一个i为1,后面的i为2,下次循环前面的i为3,后面的i为4.......但这个for(j=0;j<4;j++)printf("...
如(i++)*(i++)一开始i=1,那前一个i为1,后面的i为2,下次循环前面的i为3,后面的i为4.......
但这个
for(j=0;j<4;j++) printf("%2d ",*(*(p+i)+j))
j开始为0,那后面那个不是该是1了么?那输出来的就是第二列了,漏掉了第一列啊。
学C语言没多久,对这个模模糊糊的
请大神赐教,,最好详细一点。。
我已经弄明白了,虽然你们回答的都跟我不明白的没有大关系,但还是谢谢你们的热心了。。。 展开
但这个
for(j=0;j<4;j++) printf("%2d ",*(*(p+i)+j))
j开始为0,那后面那个不是该是1了么?那输出来的就是第二列了,漏掉了第一列啊。
学C语言没多久,对这个模模糊糊的
请大神赐教,,最好详细一点。。
我已经弄明白了,虽然你们回答的都跟我不明白的没有大关系,但还是谢谢你们的热心了。。。 展开
4个回答
展开全部
首先第一点, i++ 和 ++i 用法是不一样的;对于 i++ 先使用i的值,然后i再加一,而对于++i 是先让i的值加一再用i的值。i-- 和 --i 也是同样的道理,C语言书上有明确的讲解,主要看一下书上给的例子。
其次,对于
for(j=0;j<4;j++)
{ printf("%2d ",*(*(p+i)+j)); } 是一个for循环,它执行的顺序如下:
首先j的初始值是0,然后执行j<4,0<4成立,所以执行下面的printf函数,最后是执行j++(j的值加一变为二)。 接下来就是循环上面的步骤,一直到的值等于4为止停止循环。
要多看书,尤其是基础,必须精读。希望可以帮助你。
其次,对于
for(j=0;j<4;j++)
{ printf("%2d ",*(*(p+i)+j)); } 是一个for循环,它执行的顺序如下:
首先j的初始值是0,然后执行j<4,0<4成立,所以执行下面的printf函数,最后是执行j++(j的值加一变为二)。 接下来就是循环上面的步骤,一直到的值等于4为止停止循环。
要多看书,尤其是基础,必须精读。希望可以帮助你。
展开全部
一、(i++)*(i++) 这种代码,至今我也没有在应用中见谁写过,所以没有必须分析这个!
二、
for(j=0;j<4;j++) //这是一个for循环语句,括号中是三个步骤,
for( 初始化数据,只做一次; 循环条件,每次循环前先进行检查,不成立,则结束循环; 循环变量变化 ,每次执行完循环体中的操作,就跳到这里,进行循环变量改变 ) //三个步骤间以分号分隔
printf("%2d ",*(*(p+i)+j)) ; //循环第一次时,j=0 第二次时,j=1 。。。
二、
for(j=0;j<4;j++) //这是一个for循环语句,括号中是三个步骤,
for( 初始化数据,只做一次; 循环条件,每次循环前先进行检查,不成立,则结束循环; 循环变量变化 ,每次执行完循环体中的操作,就跳到这里,进行循环变量改变 ) //三个步骤间以分号分隔
printf("%2d ",*(*(p+i)+j)) ; //循环第一次时,j=0 第二次时,j=1 。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for语句是先执行 j = 0;j<4然后每次执行j<4;j++,第一次不执行j++.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询