gpt4 book ai didi

c - 这个for循环发生了什么

转载 作者:太空宇宙 更新时间:2023-11-04 06:56:34 26 4
gpt4 key购买 nike

for 循环的第一条语句发生了什么?我似乎无法理解为什么 1 == 2 是可以接受的,因为它是比较而不是赋值。

char ch = 120;
unsigned char x = 1;
unsigned int y = 1;
for(1 == 2; ch > 0; ch++) {
printf("%d\n", ch);
x <<= 1;
y *= 2;
}

最佳答案

这只是一个无用的语句,编译器会优化掉。 for 中的第一条语句不需要是赋值,它只是构建为一种简洁/可读的方式来循环一组值。您可以将 for 循环扩展为 while,这样可能会更清楚:

1 == 2; // does nothing, likely emits compiler warning.
while( ch > 0 )
{
printf("%d\n", ch);
x <<= 1;
y *= 2

ch++;
}

如果您想对迭代后表达式使用 for 循环但已经初始化了变量,则可以使用 null 语句作为第一个表达式:

for( ; ch > 0; ch++ ){ /* ... */ }

关于c - 这个for循环发生了什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43645409/

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