如何用C做以下几点?

时间:2010-09-20 22:26:46

标签: c loops

基本上我想在每次满足条件时创建一个int x,所以像......

while(CONDITION){
    if(int x = 100){
       //create a new int
       //refrence newly created variable
      }
   }

然后我想再次运行循环但是测试新创建的变量而不是x。希望这很清楚!

4 个答案:

答案 0 :(得分:2)

C语言中没有“创建int”的概念。如果需要,您可以为现有int分配新值:

int x, newx;
while(CONDITION){
   if(x == 100){
      newx = x;
   }
}

答案 1 :(得分:2)

C99下面的代码段

for (int i = 0; i < 4; i++) {
    int x;
    x = i * 2;
}

x每次循环都是全新的x 在程序运行该代码段期间,将有4个不同的x s。

答案 2 :(得分:0)

您的问题很难理解,但听起来几乎就像您想要for循环一样。 E.g。

for (int x = 100; CONDITION; /* do something to x here */) {
  /* use x */
}

这将在100开始x,并在CONDITION为真时继续循环。根据您用/* do something to x here */替换的内容,循环中x的值每次都会更改。举个具体的例子:

for (int x = 100; x < 200; x = x + 1) {
  printf("%d", x);
}

将打印100到199(含)之间的所有数字。请注意,x = x + 1也可以写为++xx++;为了清晰起见,我写得很简单,因为你似乎是C的新手。

以上假设你有一个C99编译器。如果您的编译器仅支持C89,则必须在函数开头声明x,并将int x = 100替换为x = 100

答案 3 :(得分:0)

你的问题一点也不清楚,但我认为递归可能对你有帮助。

void do_it(void) {
    if (CONDITION) {
        int X = something_having_to_do_with_condtion(CONDITION); // the code you had
                                                     // for initializing X made no sense
        do_it(void); // recursive call

        process_x(X);
    }
}

您可以使用其他动态分配执行类似的操作,但开销可能大于递归。