gpt4 book ai didi

c - 以下代码之间的区别

转载 作者:行者123 更新时间:2023-11-30 20:01:48 25 4
gpt4 key购买 nike

以下两个代码产生相同的输出,但有一些我无法弄清楚的差异

1.

#include<stdio.h>
int main(void)
{
int a=1;
while(a>0)
{
scanf("%d",&a);
if(a != 42)
printf("%d\n",a);
else
break;
}
}

2

#include <stdio.h>

int main(void) {
int x;
for(; scanf("%d",&x) > 0 && x != 42; printf("%d\n", x));
return 0;
}

最佳答案

工作方式不同,因为语义不同,代码不同。

如果您想将第二部分重写为第一部分,您会得到

#include <stdio.h>

int main(void) {
int x;
while (scanf("%d",&x) > 0 && x != 42) {
printf("%d\n", x);
}
return 0;
}

int main(void) {
int a;
while (scanf("%d",&a) > 0) {
if (x != 42) {
printf("%d\n", x);
} else {
break;
}
}
return 0;
}

你看出区别了吗?一方面,您的决定基于正在扫描的变量(xa),另一方面基于 scanf() 的返回值>,这只是读取的值的数量:

while(a>0)

对比

while (scanf("%d",&a) > 0)

关于c - 以下代码之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26750778/

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