for(;*str2!='\0';str1++,str2++) 这个语法是什么意思?
发布网友
发布时间:2024-10-01 10:38
我来回答
共4个回答
热心网友
时间:2024-10-06 14:24
for语句中前面那个分号就像你说的,前面省略了一句话,一般前面这句话都是一个简单的赋值语句,当然你也可以省略,比如for(int i=0;i<10;i++)。你的这个for循环是判断当前的str2数组的这个元素是不是'\0',如果是的话就退出for循环,不是的话就;str1++,str2++,取str1,str2的下一个元素。
热心网友
时间:2024-10-06 14:25
对省略了
本来分号前面是对一些变量进行初始化的
但是没必要了
比如 上面用个循环输入来输入参数 ,输入完后 那么
上个循环里的循环变量i 的数值 就是次数
下面如果要逆序输出上面刚才输入的话
就可以这样写 for(i>=0;i--) 前面的i初始化就不用写了
你这个很明显是字符串操作 连接还是拷贝
3
45
6
7
8
9
2
0
0 2 9 8 7 6 45 3 Press any key to continue
#include <stdio.h>
main()
{
int i=0,arry[100];
do
{
scanf("%d",&arry[i]);
}while (arry[i++]!=0);
i--; //就像这里的i--一样 本来可以放在for 的第一个分号前的 在外面操作了所以分号前省略了 最常见的就是 i=0;i<10;i++ 如果i在声明时就int i=0;则在第一次运行时没必要再写分号前的 i=0了
for (;i>=0;i--)
{
printf("%d ",arry[i]);
}
}
热心网友
时间:2024-10-06 14:25
for(;*str2!='\0';str1++,str2++) 意思是for这个循环在指针str2指向'\0'这个字符串结束标记时结束,str1++,str2++是指指针指向下一个字符。';'如果没需要是可以省略的。
热心网友
时间:2024-10-06 14:26
一个空语句,就是没必要,这个for循环,只是要判断*str2!='\0',如果不是,再循环,str1++,str2++