C语言中函数返回类型和函数返回值函数的返回值通过return语句来执行c语言函数的的返回值类型,即return后的变量或表达式的值,就为该函数的返回值(你可以根据需要自定义返回什么值) , 而返回值的类型是指该值你想要得到的类型,比如return
a;(a的类型,你在函数体里定义的是int
a;但根据需要,你要的是一个float型的返回值) , 于是,这样定义一个函数:
float
函数名(参数列表)
{
int
a;
函数体;
……
return
a;
}
这样,返回值a就变成c语言函数的的返回值类型了float型 。
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语言的函数的默认的返回值是int类型的,如果没有定义返回类型,则返回类型就是int
只有定义了其它的类型 , 例如float
add()才是float型的 , 括号里面参数是什么不影响返回类型
C语言函数返回类型函数调用结果的返回值,可以通过3个途径获得 。
(1)函数自身返回
(2)通过函数参数返回
(3)通过全局量返回 。
到底用那种方法,取决于程序员的考虑 。
Node* --通过函数自身返回 , 返回一个结构指针,指向 Node 型结构 。
int-- 通过函数自身返回,返回一个整型量 。
CreateLinkList 是建链表,返回Node* 结构指针
GetElem 获取元素单元,返回Node* 结构指针
InsertLinkList 用 int 表示插入成功或失败,或用 int 表示什么 。
这些 都 取决于程序员的考虑 。没有绝对的规定 。
【c语言函数的的返回值类型 c语言函数的返回值是什么意思】关于c语言函数的的返回值类型和c语言函数的返回值是什么意思的介绍到此就结束了 , 不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- 客户经理如何营销客户,客户经理营销客户时需要了解客户的什么需求
- 路由器带数字代表什么意思,路由器后面的数字哪个是密码
- ios为什么更新系统失败怎么办,为什么ios更新会出错
- c语言函数名命名 c语言函数名可以有空格吗
- 免费公众号注册开发,注册公众号是免费的吗
- 怎么把笔记本硬盘做成移动硬盘,如何把笔记本电脑硬盘做成移动硬盘
- oracle如何将一个列 oracle将一列数据拼接成一个字段
- java标识代码大全,JAVA代码大全
- ios短信画画软件,iphone短信画画