攻读计算机科学专业......
我真的无法想出这个例子......
我明白将第一个参数留空会让它表现得像真......
但是我不明白在第二个参数中留下变量的是什么......
我最不了解的是printf语句如何"更新"变量条件......
#include<stdio.h>
int main()
{
int x=1, y=1;
for(; y; printf("%d %d\n", x, y))
{
y = x++ <= 5;
}
printf("\n");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出是:
2 1
3 1
4 1
5 1
6 1
7 0
Run Code Online (Sandbox Code Playgroud)
编辑:
我现在理解for循环结构部分.....
感谢您的回答 - 非常有见地的感谢!
关于评估顺序如何进行,我已经做了大量研究 - 但无法弄清楚它如何适用于这个等式:
z = !x + y * z / 4 % 2 - 1
Run Code Online (Sandbox Code Playgroud)
我最好的猜测是(从左到右):
z = !x + {[([y * z] / 4) % 2] - 1}
Run Code Online (Sandbox Code Playgroud) 所以这是代码 - 我知道一些简单的错误,但我似乎无法弄明白.我已经尝试了不同的数字类型,指针和其他ish ......变量b并且c在函数中具有正确的值separate()- 但是当它们被传递给main()它们时它们会出现b = 0和c = -471211(或类似的东西)....
我错过了什么?这是代码:
#include <stdio.h>
void separate(int a, int b, int c){
b = a/12;
c = a%12; }
int main(){
int a = 100
int b, c;
separate(a, b, c);
printf("%i = 12 * %i + %i \n", a, b, c);
Run Code Online (Sandbox Code Playgroud)