C 中的空 while 循环有什么作用?

问题描述 投票:0回答:1

这段代码中,while循环有什么用?如果我们体内没有任何内容,我真的不明白循环会迭代什么。

#include <stdio.h>
#include <string.h>

int main()
{
    char str[666];
    char * p1, *p2;

    strcpy ( str, "Hello world!");

    p2 = (p1 = str) + 6;
    
    while ( *p1++ = *p2++ ) {}
        printf ( "%p %p", p1, p2);
}
c loops while-loop
1个回答
0
投票
while ( *p1++ = *p2++ ) {}

它将

p2
引用的对象分配给
p1
引用的对象。如果
p2
引用的对象是
0
,则增加两个指针后将退出循环,否则将增加两个指针并再次循环。

在本例中它正在复制 C 字符串。

© www.soinside.com 2019 - 2024. All rights reserved.