我最近在阅读 C 入门加上我有一个问题:
void foo1(int n, char ar[n])
{
int i = 0;
while ((ar[i] = getchar()) && !isblank(ar[i++]) && i < n)
continue;
}
void foo2(int n, char ar[n])
{
int i = 0;
do
ar[i] = getchar();
while (!isblank(ar[i++]) && i < n);
}
似乎它们在测试时有相同的输出,但我仍然想知道:
这两个函数是等价的吗?
在编译时,它们是否生成相同的编译代码?
如果不是,哪个更有效?
答案 0 :(得分:0)
因此,while
命令首先检查条件,而 do...while
在一次内执行命令,然后检查条件。
while
命令比 do...while
命令更常见,因为大多数程序员不希望循环执行一次,无论条件是否满足。