gpt4 book ai didi

c - for (gap = n/2;gap > 0;gap/= 2) 末尾没有 ";"

转载 作者:行者123 更新时间:2023-11-30 19:59:49 28 4
gpt4 key购买 nike

我在《C 编程语言第二版》中读到了以下代码

/* shellsort: sort v[0] ... v[n-1] into increasing order */
void shellsort(int v[], int n) {
int gap, i, j, temp;

for (gap = n/2; gap > 0; gap /= 2)
for (i = gap; i < n; i++)
for (j=i-gap; j>=0 && v[j]>v[j+gap]; j-=gap) {
temp = v[j];
v[j] = v[j+gap];
v[j+gap] = temp;
}

}

令我困惑的是没有“;”在“for循环行”的末尾,我认为它应该是

    for (gap = n/2; gap > 0; gap /= 2) ;
for (i = gap; i < n; i++);
for (j=i-gap; j>=0 && v[j]>v[j+gap]; j-=gap) {
temp = v[j];
v[j] = v[j+gap];
v[j+gap] = temp;
}

我怎样才能直观地包裹它?

最佳答案

声明

for (gap = n/2; gap > 0; gap /= 2) ;

等于

for (gap = n/2; gap > 0; gap /= 2)
;

等于

for (gap = n/2; gap > 0; gap /= 2)
{
}

换句话说,这是一个空循环,除了每次迭代时比较 gap > 0gap/= 2 (循环的一部分)之外,什么也不做。

关于c - for (gap = n/2;gap > 0;gap/= 2) 末尾没有 ";",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52803097/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com