C语言 求解释每句是什么意思,特别是这里的i--是干嘛的,起到什么作用for(i=0;str[i] != '\0'; i++);i--;

intmain(intagrc,char*agrv[]){charstr[10]={"abcd"};charstr2[10];inti=0;intj=0;for(i=0;... int main(int agrc, char *agrv[]) {
char str[10] = {"abcd"};
char str2[10];
int i = 0;
int j = 0;
for(i = 0; str[i] != '\0'; i++);
i--;
for(; i >= 0; i--) {
str2[j++] = str[i];
}
for(i = 0; str2[i] != '\0'; i++) {
str[i] = str2[i];
}
printf("%s",str);
}
展开
 我来答
haiyangfenghuo
2014-09-29 · TA获得超过2439个赞
知道大有可为答主
回答量:2388
采纳率:0%
帮助的人:812万
展开全部
for(i = 0; str[i] != '\0'; i++);注意这里的for语句最后有一个";",for循环结束之后str指针的位置指在了字符串结束符“\0”的位置,这里的i--是为了保证此时的i在str的最后一个字符上(非"\0")。请参考。
追问
那能不能加个{ },为什么我加了个{ }就失灵了?
for(i = 0; str[i] != '\0'; i++) {
i--;
}
追答
当然不能加{}了,你的程序里for(i = 0; str[i] != '\0'; i++) ;相当于这样子:

for(i = 0; str[i] != '\0'; i++)
{
; //请注意,这里有一个“;”是空语句。

}
然后让i--是控制到倒数第一个字符。
百度网友834a0a1e3
2014-09-29 · TA获得超过835个赞
知道小有建树答主
回答量:1031
采纳率:62%
帮助的人:164万
展开全部
直接讲你是很难消化的,其实这是C语言的基本语法,建议你先从基础知识看起
有了一点基础之后再看这些代码
相信你有一定基础之后,这对你将非常简单
希望对你有帮助
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ae63663
2014-09-29 · TA获得超过129个赞
知道答主
回答量:13
采纳率:0%
帮助的人:1.3万
展开全部
表示i=i-1
追问
那在里面是用来干嘛的,为什么我加了个{ }就失灵了?
for(i = 0; str[i] != '\0'; i++) {
i--;
}
追答
for是个循环语句
for(i=0;str[i]!='\0';i++)
i--;
是一个整体执行次序是
i=0(i的初值是0)
str[i]!='\0(判断字符串第i位有没有结束)
i--(i的值减去1)
i++(i的值加上1)

for(语句1;语句2;语句3)

语句4;

相当于
语句1;
while(语句二)
语句4;
语句3;
你用{}就将语句4隔开l。就不属于for循环语句了,运行当然不对了
希望能被采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式