对于家庭作业,我不允许使用任何变量,例如“int i = 0;” -- 只有指针。
问题是我需要做 n 次 - 比如说 10 次 - 但我想不出一个方法来做这件事 n 次没有 for 循环。它正在操作一个指向整数的指针,它不会以零结尾,但大小总是相同的(比如说 10)。
有没有办法在不使用整数来控制循环的情况下执行以下操作?
int i;
for (i = 0; i < 10; i++) {
*(p + i) = 0;
}
也许是这样的:
int *q = p + 10;
while (p != q) {
*p++ = 0;
}
更新:
这样做可以避免使用整数,只需识别开始 (p) 和结束 (p + 10),然后迭代它们。它不适用于这种特殊情况,但很多时候您不知道(或需要知道)数组的大小。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int *p = (int*)malloc(sizeof(int));
for(*p = 0; *p < 10; (*p)++)
printf("%d\n", (*p));
}