c - 下面的代码在 C 中做了什么?

标签 c pointers while-loop

我从某处看到了以下代码:

while(*i++ = *j++)
{
}

但是这段代码在做什么?这是什么意思?

最佳答案

它将元素从名为 j 的数组(或指向数组的指针)复制到名为 i 的数组中。它会一直这样做,直到找到一个等于零的值(来自 j)。

这是复制 C 风格、以 null 结尾的字符串的常用习惯用法;它还可以用于复制以标记零结尾的整数数组。

如果可以预先知道j 的大小,最好使用memcpy()。如果无法事先知道 j 的大小,则代码很可能是不安全的,因为分配给 i 的正确大小也无法知道。

关于c - 下面的代码在 C 中做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19298659/

相关文章:

c - 改进 Comsol Multiphysics 3.5 的网格和内存使用?

c - C 中的面向对象程序 - 列表

java - Java 中类似指针的行为

在 c 中的 while 循环中继续接受输入。我试过 fflush

c - mifare desfire 中的 ISO14443-4(RATS)

c - 如何用C写这个

java - 获取指向持久对象的指针

c编程打印char *的ascii值

mysql - Bash while 循环等待 mysql 导入

java - 无限循环 - Scanner.hasNextInt() 在 while 循环内