首页 > 试题广场 >

设有以下函数int f(int a, char * b) {

[不定项选择题]
设有以下函数
int f(int a, char * b) {„„}
则下面对函数指针的定义和赋值错误的是( )
  • int (*p)(int, char*); p=f;
  • int *p(); p=f;
  • int (*)p(); p=&f;
  • int *p(int, char);p=&f;
测试了,int (*p)(int, char *);
p = f; 和 p = &f; 都可以

发表于 2017-03-20 22:18:58 回复(0)
函数指针的定义格式为函数类型(*指针变量名)(形参列表)
发表于 2017-03-09 20:31:21 回复(0)
正确答案:BCD   
我的选项:A
发表于 2022-04-23 16:22:50 回复(3)
函数是有地址的,但是写不写&都可以,同样,调用的时候写不写*都可以(这是由于兼容性等历史原因,有人称之为矛盾的和谐)
发表于 2021-02-26 14:50:36 回复(0)
函数指针的定义,那首先要是个指针,由于后面的()的优先级比*高,所以p首先要和 * 结合,就是(*p),这样才是一个指针,故排除B和D项;
赋值是把函数f(int a, char * b) {„„}的地址赋给指针变量p,函数名就是该函数的地址,故为p = f。只有A正确
发表于 2022-04-04 10:19:07 回复(0)
函数指针得赋值: p=f; p=&f; 以上这两种赋值是一样的,都是指向首地址。
编辑于 2021-05-16 06:55:16 回复(0)
A是函数指针,本质是指针,指向一个函数。 B,D是指针函数,本质是函数,反回值为一个指针。 C的写法好像是错了,编译都不通过。
发表于 2021-12-31 11:17:25 回复(1)
没看到让选错误的,醉了🥴
编辑于 2024-04-14 10:43:52 回复(0)
D定义的不是一个函数指针
发表于 2022-01-01 20:50:39 回复(0)
2、3、4返回值类型对不上
发表于 2020-10-02 12:50:17 回复(0)
应定义一个指针函数*p,然后p=f
发表于 2017-02-23 09:12:31 回复(0)