gpt4 book ai didi

c - 我不明白这个用指针编写的 C 程序

转载 作者:行者123 更新时间:2023-11-30 18:23:14 24 4
gpt4 key购买 nike

我看到这个 C 程序使用指针将第一个字符串复制到第二个字符串。

void copy(char const *s1, char *s2)
{
for(;(*s2=*s1);++s1,++s2){};
}

我不明白停止 for 循环的条件,因为我可以编写 (*s2=*s1)!='\0' 并且它可以工作,但如果我不这样做不要写 !='\0' 它也有效。 for循环如何知道何时停止?

最佳答案

括号表示测试标准是对s1(左操作数)指向的位置进行赋值的结果。换句话说,循环将一直运行,直到 *s2 的值为 false。

(*s2=*s1)!='\0' 相当于 (*s2=*s1)!=0,相当于 (*s2=*s1);或 (*s2=*s1)==true 如果您愿意的话。显然,非零值被评估为 true,因此循环运行直到第二个字符串具有 nul 终止符。

关于c - 我不明白这个用指针编写的 C 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59700204/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com