跳到主要内容

简述有定义int(*p)[3];和int (*f)();则p与f分别是_ ?

参考答案:

在C语言中,int(*p)[3];int (*f)(); 分别是两种不同类型的指针声明。

  1. int(*p)[3];:这是一个指向包含3个整数的数组的指针。p 不是一个数组,而是一个指针,它指向一个包含3个整数的数组。这样的指针通常用于处理二维数组的一行或多维数组的一个层面。例如,如果你有一个二维数组 int arr[4][3];,那么 p 可以指向 arr 的任何一行,如 p = arr[0];。此时,p 就指向 arr 的第一行,p[i] 则可以访问该行的第 i 个元素。
  2. int (*f)();:这是一个函数指针,指向一个返回整数类型的函数。f 不是一个函数,而是一个指针,它指向一个函数,该函数在被调用时返回一个整数。这样的指针通常用于函数指针表、回调函数等场景。例如,如果你有一个函数 int myFunction();,那么你可以将 f 设置为指向这个函数,如 f = myFunction;,然后通过 f() 来调用 myFunction

所以,p 是一个指向包含3个整数的数组的指针,而 f 是一个指向返回整数类型的函数的指针。