这是什么意思?C编程没有条件

  • 本文关键字:编程 有条件 是什么
  • 更新时间 :
  • 英文 :

void strcpy(char *s, char *t)
{
    while ((*s++ = *t++) != '');
}

void strcpy(char *s, char *t)
{
    while (*s++ = *t++);
}

是相同的,这是什么意思?消除这种情况有什么作用?

表达式*s++ = *t++仍然有一个结果,这个结果可以用作条件。更准确地说,结果将是复制的字符,正如你(应该)知道的,所有非零值都被认为是"true",并且你也(应该)知道C中的字符串 0 终止。

循环所做的就是复制字符,直到到达字符串结束符

检查字符串 NUL是否到达末尾,同时将*t的值复制到*s,然后两个指针都加1。

回答你的第二个问题,考虑一下,

if(a != 0)

if(a)

这只是写相同代码的两种方式。我能想到的唯一区别是代码清晰度

条件是检查是否到达字符串的末尾,而不是超过它。如您所知,在C中,字符串以''字符

结束。

最新更新