还有一个问题是:"int (f)(int);"和“int (f)()”指向函数的指针f这样这两种定义和有啥区别
这是一个二级指针数组。它定义了一个名为p的数组,该数组由10个整型指针组成,这些指针指向另一个整型数组。
从这个定义中,每个元素p[i]是一个整型二级指针,其值可以被设置为指向其他整型数组的指针。
"int (f) (int);" 和 "int (f) ();" 这两种定义的区别是,前者表示一个指向一个接受一个 int 参数,返回一个 int 值的函数的函数指针,而后者表示一个指向一个接受不带任何参数,返回 int 值的函数的函数指针。
1.首先回答你的第一个问题:
int **p[10]是二级指针数组,你的理解没错!
解释:int **p[10]首先是个数组这是没问题的(p先和[ ]结合)。p是个数组,数组里面元素类型是:int **(二级指针)。
2.区别在于:函数参数列表
就和int f (int x)和int f ()这两个函数的区别在于参数列表不同一样!
希望我的解答对你有帮助❤
关对指针的理解,推荐看看我写的这篇博客,希望对你有用!【C语言篇】保姆级详解指针|多图解,包懂,让天下没有难懂的指针
1.二级指针数组,就是一个数组里面放的全是二级指针
2.有参和无参的区别
c语言里函数是可以重载的,所以必须指定到底是哪个重载,而不能只写函数名