C++两道短题求解

来源:百度知道 编辑:UC知道 时间:2024/05/24 05:19:47
请解释答案,谢谢!
1.函数fun的返回值是指针,其中一个参数是字符,另一个参数是int类型的引用,声明fun的函数的原型是______.

2.不允许调用者改变函数参数的函数原型声明是( ).
A.string input (const int); B.string input (int&);
C.string input (int *); D.string input (string&);
你的答案是否有误?
1:我写的是int *fun(char,&int),题目说了另一个参数是引用,你写的是指针吧,还有,我的函数类型是int没有把握,因为题目说返回值是指针,是否说明了函数类型?

2;我也选A,不过只是凭感觉的.

还有请解释答案,我在学习C++中,很想知道原因.谢谢。

------------------------------
似乎只有第一题中函数原型的问题了,返回值是指针,但是没有说到指针类型,用void *fun可以么?为什么?

1.void * func(char a,int &b);
//函数返回指针可以指定类型,如:int *func()
//这里没有特别说明,就直接用void的了,这个需要题目更明确点,不过其意图可能是char *返回这样的指针。int &b才是传引用,虽然int *b可以达到同样的功能,但是从题意来看应该用int &b,而且在理解上较int *b好理解。
2.A
//你可以看看const的用法就明白了,const可以定义常量,但是用在函数参数中,入参定意为const的目的,就是为了防止调用者改变函数(当然这个改变可能是由以外引起的),当然你不定义成const也是可以的,但是如果这个参数是入参,最好还是定义成const,这也是一个习惯问题

不知道你看明白了否?
祝你学习愉快

1.void * func(char a,int * b);
2.A吧

1.*fun(char a,int *b);
2.A
应该对