【发布时间】:2015-08-22 12:46:11
【问题描述】:
这是考试题之一,目的是确定程序会写什么。我真的很困惑int (*f[])(int*) = {f1, f2, f2, f1 }; 是什么。我教过它可能是一个数组,其元素是括号中函数的结果,而这些结果是指向 int 的地址。
你能解释一下吗?
还有,函数f[i++]得到什么参数
for (i=0; i<2; a += fx(f[i++], a));
问题:
int f2(int *p) { return *p-- + 2; }
int f1(int *q) { return ++*q; }
int fx(int (*pf)(int*), int q) {
int t = q;
while ((t = pf(&q)) % 2) q+=2;
return t;
}
#include <stdio.h>
void main() {
int a = 4, b = 3, *p = &b, i;
int (*f[])(int*) = {f1, f2, f2, f1 };
for (i=0; i<2; a += **fx(f[i++]**, a));
printf("%d", a + *p);
}
【问题讨论】:
-
缩进!缩进!缩进!
标签: c