C语言中函数返回值的类型是由 决定?为什么选A,而不选B呀?谁知道呀?

2024-11-03 02:53:22
推荐回答(4个)
回答1:

C语言函数返回值是由定义函数时所定义的函数的类型决定的。
也就是说你的函数是什么类型,返回值就是什么类型。
比如:
函数定义  int fun(int a,char b)
返回值就是整型
函数定义  int *fun(int a)
返回值就是基类型为整型的指针
函数定义  void fun(int a)
无返回值


return语句的表达式能转换成函数定义类型,则返回函数定义类型,否则将warning

比如:

int fun(int a)
{
    float a=1.5;
    return a;//warning C4244: 'return' : conversion from 'float ' to 'int ', possible loss of data
}

这时实际上返回的是1而不是1.5

回答2:

int hello(){
char a='a';
return a; //返回的是 97
}
char hello(){
int a=97;
return a; //返回的是 a
}
但是这样你又看不出来。如果学过c++的话用cout<给你写个完整代码。可以直接在dev c++中运行
#include
using namespace std;
int hello1(){
char a='a';
return a; //返回的是 97
}
char hello2(){
int a=97;
return a; //返回的是 a
}
int main(){
cout< getchar();//为了暂停看一下结果
return 0;
}

回答3:

比如一个求最大值函数定义的时候我这样定义
int max(float a, float b){
float larger;

a > b ? larger = a : larger = b;
return larger;

}
假如我给参数 a = 2.6 b = 2.8
那么larger = 2.8
但是函数的返回值类型看的只能是函数类型, 这样最后返回的只是2而已 , 尽管larger是2.8, 由于函数max的类型是int , 被强制截断成了2

题目四个选项里面只有A是看函数类型。所以其他都不对

回答4:

double func()
{
return 1;

}