简述有定义int(*p)[3];和int (*f)();则p与f分别是_ ?
参考答案:
在C语言中,int(*p)[3]; 和 int (*f)(); 分别是两种不同类型的指针声明。
int(*p)[3];:这是一个指向包含3个整数的数组的指针。p不是一个数组,而是一个指针,它指向一个包含3个整数的数组。这样的指针通常用于处理二维数组的一行或多维数组的一个层面。例如,如果你有一个二维数组int arr[4][3];,那么p可以指向arr的任何一行,如p = arr[0];。此时,p就指向arr的第一行,p[i]则可以访问该行的第i个元素。int (*f)();:这是一个函数指针,指向一个返回整数类型的函数。f不是一个函数,而是一个指针,它指向一个函数,该函数在被调用时返回一个整数。这样的指针通常用于函数指针表、回调函数等场景。例如,如果你有一个函数int myFunction();,那么你可以将f设置为指向这个函数,如f = myFunction;,然后通过f()来调用myFunction。
所以,p 是一个指向包含3个整数的数组的指针,而 f 是一个指向返回整数类型的函数的指针。