看到个c++ for ( ; ; )中间的条件表达式为赋值,应该是会无限循环的为啥也结束了..(内详

2025-04-29 18:21:56
推荐回答(4个)
回答1:

for里面*s1 = *s2; 这里相当于: *s1 = *s2;然后判断*s1 != 0;当*s2到达字符串的结尾时,其值为NULL,相当于0了。所以结束。

你可以试一下下面代码,看什么时候结束输出
int i = 10,j;
for(; j=i;i--)
{
cout<}
cout<<"\n";

回答2:

是到string2的结尾就结束了,*s1 = *s2,这个循环退出语句的结果就是*s2,也就是s2的末尾,对应的参数是string2

回答3:

隐式表达;
循环条件是*s2!='\0';

回答4:

c++输入字符会在字符串末尾自动添加NULL,继而会扫描到NULL会自动结束。