成都网站建设设计

将想法与焦点和您一起共享

谁决定c语言函数类型定义 谁决定c语言函数类型定义的是

c语言中函数返回值的类型由什么决定?

是由你定义函数时所定义的函数的类型决定的。

公司主营业务:成都网站设计、成都网站制作、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联公司推出红河免费做网站回馈大家。

也就是说函数是什么类型,返回值就是什么类型。

比如:

函数定义  int fun(int a,char b)。

返回值就是整型。

函数定义  int *fun(int a)。

返回值就是基类型为整型的指针。

函数定义  void fun(int a)。

无返回值。

简介

在调用函数时,如果需要从被调函数返回一个值供主调函数使用,那么返回值类型必须定义成非 void 型。此时被调函数中必须包含 return 语句,而且 return 后面必须要有返回值,否则就是语法错误。

一个函数中可以有多个 return 语句,但并不是所有的 return 语句都起作用。执行到哪个 return 语句,就是哪个 return 语句起作用,该 return 语句后的其他语句都不会执行。

在C语言中,函数返回的数据类型取决于

选择C,函数返回值的类型和函数名师没有关系的,函数名只是个简单的代号,没有什么特殊的意义,return 语句中表达式的数据类型必须和 定义函数是所指定的数据类型一样才可以,否则会出错。至于主调函数,强调一下。 主调函数一般都是void 也就是空型的,没有什么特殊用处,也只是为了保持函数格式的一致。

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

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

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);


文章名称:谁决定c语言函数类型定义 谁决定c语言函数类型定义的是
文章位置:http://chengdu.cdxwcx.cn/article/dogephi.html