基本上我想在每次满足条件时创建一个int x
,所以像......
while(CONDITION){
if(int x = 100){
//create a new int
//refrence newly created variable
}
}
然后我想再次运行循环但是测试新创建的变量而不是x。希望这很清楚!
答案 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
也可以写为++x
或x++
;为了清晰起见,我写得很简单,因为你似乎是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);
}
}
您可以使用其他动态分配执行类似的操作,但开销可能大于递归。