这个for语句头"for(i = 0;c[i];i++)"是什么意思

[复制链接]
查看11 | 回复3 | 2008-11-16 16:02:53 | 显示全部楼层 |阅读模式
这个for语句头"for(i = 0;c;i++)"是什么意思
这部分无整的代码是这样的

void in(int a[20]) {
char c[21];
printf("Enter the number:");
int i;
scanf("%s",c);
for(i = 0;c;i++)
a=c-48;
}
那是不是若只输入了一串10位数的数字,那c[10]以后的都默认为0的吗

回复

使用道具 举报

千问 | 2008-11-16 16:02:53 | 显示全部楼层
i=0,1,……,循环到c==0为止。鉴于你的补充,c是字符串,所以它以'\0'结尾。该循环以i为c的下标,从串的第一个字符遍历到最后一个。在你的例子中就是i==9。c[10]=='\0'为scanf() %s所添加。...
回复

使用道具 举报

千问 | 2008-11-16 16:02:53 | 显示全部楼层
想你没有理解for语句的具体含义for(i = 0;c;i++)第一部分:进入循环前的初始化工作;中间部分:循环执行条件(若非零则执行循环);最后部分:执行完每次循环后要执行的部分。这个语句的意思是:从c数组第一个元素往后,找到第一个为 0 的元素后跳出循环。是不是后面要对c进行操作?...
回复

使用道具 举报

千问 | 2008-11-16 16:02:53 | 显示全部楼层
是c不为0是执行for语句,不过我不知道循环体里是什么…?...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行