首页 > 试题广场 >

What will be the ...

[单选题]
下面代码的输出为()
#include<iostream>
using namespace std;
typedef void(*FunPtr)(int);
int sum(int = 10, int = 20);
void output(int);
int main(){
    FunPtr ptr = output;
    (*ptr)(30);
    return 0;
}
int sum(int x, int y){
    return(x + y % 20);
}
void output(int x){
    cout<< sum(x) << endl;
} 
  • 20
  • 30
  • 31
  • 40
我太牛了,每次正确率40,非常稳定
发表于 2022-02-28 00:09:05 回复(2)
知道是sun(30,20),但是我竟然下意识地认为 20 % 20 == 1.诶我费了
发表于 2022-01-23 11:00:38 回复(6)
FunPtr ptr = output; 定义一个函数指针,指向output函数
 (*ptr)(30);  给被指向的函数传入30的实参 output(30)
cout<< sum(30) << endl;   output函数内容
int sum(int = 10, int = 20);  sum函数的声明,默认第一个形参10 第二个20
sum(30)  修改第一个形参为30   sum(30) ---->sum(30,20)

发表于 2021-09-10 12:32:27 回复(0)
 FunPtr ptr = output 定义了一个函数指针,指针ptr指向output函数
 (*ptr)(30)相当于output(30)
再调用sum函数,sum(30),sum函数中x=30,y=20

发表于 2020-09-01 16:05:45 回复(3)
取余不是除 吐了
发表于 2022-05-06 15:06:04 回复(0)
FunPtr ptr=output;定义了一个函数指针,指向output函数,(*ptr)(30)=output(30),然后是sum(30)。前面给出sum(10,20),后sum(30)直接替换10,结果为sum(30,20),返回值为30.输出值为30
发表于 2022-10-13 20:29:28 回复(0)
缺省,只给一个参数的时候,默认先替代前面的参数,所以就是sum(30,20)
发表于 2023-10-30 21:17:00 回复(0)
看错了……%看成/了
发表于 2021-11-18 21:05:22 回复(0)
函数指针跟数据类型指针一样
发表于 2021-04-02 10:22:06 回复(0)