循环做n次没有int i = 0?

时间:2012-10-20 21:32:20

标签: c pointers for-loop

对于家庭作业,我不允许使用任何变量,例如“int i = 0;” - 只有指针。

问题在于我需要做n次 - 比方说10次 - 但是我无法想办法在没有for循环的情况下说n次。它正在操作指向整数的指针,它不会被零终止,但是大小总是相同的(比方说10)。

有没有办法在不使用整数来控制循环的情况下进行以下操作?

int i;
for (i = 0; i < 10; i++) {
    *(p + i) = 0;
}

2 个答案:

答案 0 :(得分:6)

也许是这样的:

int *q = p + 10;
while (p != q) {
    *p++ = 0;
}

更新:

这样做可以避免使用整数,只需识别一个开头(p)和一个结尾(p + 10),然后迭代它们。 它不适用于这种特殊情况,但很多时候你不知道(或者不需要知道)数组的大小。

答案 1 :(得分:0)

      #include <stdio.h>
      #include <stdlib.h>
      int main()
      {
        int *p = (int*)malloc(sizeof(int));
        for(*p = 0; *p < 10; (*p)++)
             printf("%d\n", (*p));

      }