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

A.函数定义时指定的类型
B.return语句中的表达式类型
C.调用该函数时的实参的数据类型
D.形参的数据类型

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

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-10-01
int hello(){
char a='a';
return a; //返回的是 97
}
char hello(){
int a=97;
return a; //返回的是 a
}
但是这样你又看不出来。如果学过c++的话用cout<<hello()<<endl; 分别输出这两个函数就可以了。
给你写个完整代码。可以直接在dev c++中运行
#include<iostream>
using namespace std;
int hello1(){
char a='a';
return a; //返回的是 97
}
char hello2(){
int a=97;
return a; //返回的是 a
}
int main(){
cout<<hello1()<<" "<<hello2()<<endl;
getchar();//为了暂停看一下结果
return 0;
}本回答被网友采纳
第2个回答  推荐于2017-09-23
比如一个求最大值函数定义的时候我这样定义
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是看函数类型。所以其他都不对本回答被提问者采纳
第3个回答  2014-02-21
double func()
{
return 1;

}
相似回答