gpt4 book ai didi

c - 当在其条件中使用赋值和后缀运算符时,while 循环如何工作

转载 作者:太空宇宙 更新时间:2023-11-04 03:10:42 37 4
gpt4 key购买 nike

我在一本关于指针的书中找到了这段代码,这本书解释了下面的代码。首先,存储在 ss 中的地址的值替换存储在 tt 中的地址的值。赋值后,执行测试以决定 while 循环是否应该继续。由于 *tt 给出的 'l' 是真实值。接下来 sstt 都递增。

我的问题是:

  1. 为什么while循环先赋值再判断真假?
  2. 为什么要检查 tt 的值,我的意思是为什么特别是 tt
  3. 为什么 sstt 在检查条件后递增;为什么不在赋值之后?
int main()
{
char s[]="lumps, bumps, swollen veins, new pains";
char t[40];
char *ss,*tt;
tt=t;
ss=s;
while (*tt++ = *ss++ );
printf("%s ",t);
}

输出:

lumps, bumps, swollen veins, new pains

最佳答案

  1. why does the while loop first assigns the value and then check for true or false 2.

它复制 char,然后检查复制的 char 是否为空终止符。如果是,则计算结果为 0(或 false)并且循环停止。

why value at tt is checked, i mean why particularly tt.

实际上它是 = 被检查的结果,它等于分配的值。因此,如果 *ss'\0',则 = 返回 '\0' 并且循环停止,因为 '\0' 等于 0false

why ss and tt are increment after checking the condition why not just after assigning the value

这是后缀增量,所以赋值 (=) 是用旧值完成的,而不是增量值。

关于c - 当在其条件中使用赋值和后缀运算符时,while 循环如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56643693/

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