小编sna*_*121的帖子

对于printf作为第三个参数的循环

攻读计算机科学专业......

我真的无法想出这个例子......

我明白将第一个参数留空会让它表现得像真......

但是我不明白在第二个参数中留下变量的是什么......

我最不了解的是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循环结构部分.....

感谢您的回答 - 非常有见地的感谢!

c for-loop

6
推荐指数
2
解决办法
3763
查看次数

C - 等式的评估顺序

关于评估顺序如何进行,我已经做了大量研究 - 但无法弄清楚它如何适用于这个等式:

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)

c equation operator-precedence

5
推荐指数
1
解决办法
3825
查看次数

C - 函数值未正确传递两个整数值之一

所以这是代码 - 我知道一些简单的错误,但我似乎无法弄明白.我已经尝试了不同的数字类型,指针和其他ish ......变量b并且c在函数中具有正确的值separate()- 但是当它们被传递给main()它们时它们会出现b = 0c = -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)

c variables pointers function

0
推荐指数
1
解决办法
5397
查看次数