gpt4 book ai didi

c - 关于 "for(a, b&&c, d) {...}"和 "for(a, b, d) if(c) {...}"的区别

转载 作者:行者123 更新时间:2023-11-30 15:55:05 26 4
gpt4 key购买 nike

作为一名资深程序员,我们清醒地认识到,即使是不起眼的 for 循环也没有被完全理解。为什么以下程序将单个 1 打印到控制台?我完全希望第一个循环也能产生 1!使用 -ansi 开关编译。

/* gcc installed version: 4:4.4.4-1ubuntu2 */

#include <stdio.h>

#define SIZE 2

int main()
{
int i;
int a[SIZE];

a[0]=0;
a[1]=1;

for(i=0; (i<SIZE) && (a[i]!=0); i++)
printf("%i\n",a[i]);

for(i=0; i<SIZE; i++)
if (a[i]!=0)
printf("%i\n",a[i]);

return 0;
}

最佳答案

第一个循环相当于:

for(i=0; ; i++) {
if( !((i<SIZE) && (a[i]!=0)))
break;
printf("%i\n",a[i]);
}

关于c - 关于 "for(a, b&&c, d) {...}"和 "for(a, b, d) if(c) {...}"的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12539367/

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