0

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

问题是我需要做 n 次 - 比如说 10 次 - 但我想不出一个方法来做这件事 n 次没有 for 循环。它正在操作一个指向整数的指针,它不会以零结尾,但大小总是相同的(比如说 10)。

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

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

2 回答 2

6

也许是这样的:

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

更新:

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

于 2012-10-20T21:35:51.247 回答
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));

      }
于 2012-10-20T21:44:01.087 回答