c - 分配值并在同一行进行比较它是如何工作的?

标签 c pointers while-loop conditional-statements

下面函数中while循环的条件

void strcpy(char *s, char *t)
    {
    int i;
    i = 0;
    while ((s[i] = t[i]) != '\0')
    i++;
    }

此处的条件 (s[i] = t[i]) != '\0' 将生成 01 它将赋值语句与空字符进行比较吗? 或者 2个数组的第i个元素的值为空字符?

最佳答案

赋值表达式有一个值,是赋值后的左操作数。

在此示例中,条件是测试 s[i] != '\0'(在执行 s[i] = t[i] 之后)。

关于c - 分配值并在同一行进行比较它是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28037085/

相关文章:

c - 为结构化指针分配内存

c++ - -> 在智能指针中的用法

c - 指向 C 中结构表的指针

java - 在 Java 中使用随机数生成器循环

有人可以解释一下这段代码的作用吗?

在 UNIX 中复制目录的 C 函数 : files fail to copy

c - Makefile 的问题

c - 是否保证执行 memcpy(0,0,0) 是安全的?

java - while 循环在 for 循环中,困惑吗?

sql - 当需要计数器时,避免在 SQL 中使用 while 循环