本文目录一览:
- 1、在C语言中,函数返回的数据类型取决于
- 2、"C语言中,函数返回值的类型是由定义函数时所指定的函数类型决定的"这句话对吗?
- 3、C语言规定,函数返回值的类型是由( )。 A. return语句中的表达式类型所决定 B. 调用该函数时的主调函数类
- 4、决定C语言中函数返回值类型的是【 】
- 5、c语言 一个函数返回值的类型取决于( )
- 6、C语言规定,函数返回值的类型由什么决定?
在C语言中,函数返回的数据类型取决于
选择C,函数返回值的类型和函数名师没有关系的,函数名只是个简单的代号,没有什么特殊的意义,return 语句中表达式的数据类型必须和 定义函数是所指定的数据类型一样才可以,否则会出错。至于主调函数,强调一下。 主调函数一般都是void 也就是空型的,没有什么特殊用处,也只是为了保持函数格式的一致。
"C语言中,函数返回值的类型是由定义函数时所指定的函数类型决定的"这句话对吗?
int
afun()//函数定义,int
表示函数定义的类型
{
long
a;
int
b;
//如果返回是这样,return
a;
错误,因为返回值的类型与定义的类型不一致
//如果返回是这样,return
b;
正确,因为返回值的类型与定义的类型一致
}
,所以,函数返回值的类型是由定义该函数时所指定的函数定义类型决定的!
C语言规定,函数返回值的类型是由( )。 A. return语句中的表达式类型所决定 B. 调用该函数时的主调函数类
当然是由函数决定的啊:
比如声明一个函数
int prot(int *, int);
那么这个函数的返回值int型返回值。
可以写成return XX --XX是int型,如果这里你写成其它型的(如A说的),编译会报错
再就是函数声明写成prot(int *, int), //不给他声明返回类型。
PC机会隐式的让返回值为int型,如果你return 0.32, 返回去的值其实是0.
决定C语言中函数返回值类型的是【 】
决定C语言中函数返回值类型的是定义函数时在函数首部所指定的类型。
在C语言中,一个标准的函数定义语句块必须包含函数返回值的类型标识符、函数名、形参类型及数量、函数体、返回值表达式。如果函数返回值类型为
void
(即无返回值)。
函数定义示例(其中int是函数返回值类型):
int
fun(int
a,
int
b){
return
ab
?
a
:
b;
}
扩展资料
C语言函数类型种类举例介绍:
1、void
空类型,表示该函数无返回值;
2、int
整形,表示该函数返回int整形数值;
3、double
双精度,函数返回双精度数值;
4、char
字符串,函数返回字符串;
5、long
长整型,函数返回长整型数值;
c语言 一个函数返回值的类型取决于( )
显然是选择A.定义函数时制定或缺省的函数类型,如果不指定,缺省是int型。
C语言规定,函数返回值的类型由什么决定?
c语言规定,函数返回值的类型是由函数首部定义的类型决定。函数返回值应与首部定义的类型一致,如若不一致,则自动将返回值强制转换为函数首部定义的类型。没有定义类型时默认为int型。
也就是说你的函数是什么类型,返回值就是什么类型。
比如:
函数定义 int fun(int a,char b)
返回值就是整型
函数定义 int *fun(int a)
返回值就是基类型为整型的指针
函数定义 void fun(int a)
无返回值
扩展资料
函数可以有返回值,只要 return 就可以给出一个,不过常常不用它,有两个原因:
1、C/C++里返回值是复制出去的,而对于大的对象,复制的代价很高;
2、有些对象是不能复制的,至少编译器不知道怎么复制,比如数组。
于是有了下面这样的函数:
bool GetObj(ObjType obj);
bool Encode(const char* src, char* dest);
用一个参数来代替返回值,而返回值只是指示函数执行是否成功。
返回一个大对象是困难的,但这个困难存在于 C 程序中,而不是 C++ 程序中。 C 函数里较少通过返回一个指针来返回对象,因为:
1、如果指针指向栈变量,毫无疑问,要么不用这个返回值,要么是一个错误;
2、如果指针指向堆变量,需要用这个函数的程序员会好好的看文档且足够细心会调用 free,要么就是内存泄漏;
3、如果指针指向 static 变量,那么用这个函数的程序员牢牢记住“下次调用这个函数以后,上次的返回值也会跟着变”。
在C++里直接返回裸指针的话,情况并不会有什么起色,不过 C++ 有智能指针的,通常它们指向堆变量,占用的空间和裸指针一样大。考虑前面第一个函数,写成:
std::auto_ptrObjType GetObj();
返回值如果不要,作为临时变量,会立即被析构,返回的对象被释放;如果需要,就得赋值给另一个智能指针。总之不用程序员记得,编译器会保证这个对象的释放。
考虑第二个函数,稍微有一点麻烦,因为 auto_ptr 是不能用来持有数组的,不过,在C++的世界里,std::string 几乎总是比 char* 好用:
std::auto_ptrstd::string Encode(const char* src);
最后考虑最麻烦的情况:
bool AssembleObjList(ObjType objList[], size_t length);