基本上我想创建每次条件满足像时间的int x
...如何用C做以下操作?
while(CONDITION){
if(int x = 100){
//create a new int
//refrence newly created variable
}
}
然后,我想通过循环再次运行,但测试新创建的变量,而不是x的。希望这已经够清楚了!
基本上我想创建每次条件满足像时间的int x
...如何用C做以下操作?
while(CONDITION){
if(int x = 100){
//create a new int
//refrence newly created variable
}
}
然后,我想通过循环再次运行,但测试新创建的变量,而不是x的。希望这已经够清楚了!
在C语言中没有“创建int”的概念。您可以将新的值赋给如果你想在现有int
:
int x, newx;
while(CONDITION){
if(x == 100){
newx = x;
}
}
+1 OMG,看来你明白了这个问题。我不能! – karlphillip 2010-09-20 22:32:26
在C99
片段下方
for (int i = 0; i < 4; i++) {
int x;
x = i * 2;
}
的x
是新通过循环每次x
一个品牌。
在程序运行该代码段的过程中,将会有4个不同的x
s。
你的问题很难理解,但它听起来像你想要一个for
循环。例如。
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(含)之间的所有数字。请注意0也可以写成++x
或x++
;为了清晰起见,我写了它,因为你看起来对C来说是新手。
上面假定你有一个C99编译器。如果编译器仅支持C89,则必须在函数的开头声明x
,并用x = 100
替换int x = 100
。
你的问题并不十分清楚,但我认为递归可以帮助你。
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);
}
}
你可以做类似的事情与其他动态分配,但开销可能比递归更大。
您的条件表达式不是您认为的那样。 – pmg 2010-09-20 22:30:08
寻求帮助来解决问题,而不是步骤。 – GManNickG 2010-09-20 22:30:41
你真的应该编辑这个问题,使它更清楚你在问什么。 – nategoose 2010-09-20 23:21:23