|
|
检测点8-12
1.修改源文件c0813.c,将对象a的声明改成这样:
int a [] = {5, 6, 7,};
编译修改后的程序,看看编译时会出现什么问题,并解释原因。
答:提示类型不兼容。原因是sum_ints函数要求一个指向int [5]的指针,而传递的是指向int [3]的指针。
2.若print_ints函数的返回类型是void,且它有一个类型为int (*) [5]的形参p。该函数的功能是打印形参p所指向的那个数组的所有元素的值。请给出这个函数的定义并编写一个完整的程序来测试它。
参考答案:
void print_ints (int (* p) [5])
{
for (int x = 0; x < sizeof * p / sizeof (* p) [0]; x ++)
printf ("%10d", (* p) [x]);
}
int main (void)
{
int a [] = {5, 6, 7, 8, 9};
print_ints (& a);
}
|
|