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语言中函数返回值类型的是定义函数时在函数首部所指定的类型。
在C语言中,一个标准的函数定义语句块必须包含函数返回值的类型标识符、函数名、形参类型及数量、函数体、返回值表达式。如果函数返回值类型为
void
(即无返回值)。
函数定义示例(其中int是函数返回值类型):
int
fun(int
a,
int
b){
return
a>b
?
a
:
b;
}
(2)c语言返回值类型扩展阅读
C语言函数类型种类举例介绍:
1、void
空类型,表示该函数无返回值;
2、int
整形,表示该函数返回int整形数值;
3、double
双精度,函数返回双精度数值;
4、char
字符串,函数返回字符串;
5、long
长整型,函数返回长整型数值;
③ c语言中函数的返回值到底是什么意思,有什么用
一个函数的函数名既是该函数的代表,也是一个变量。由于函数名变量通常用来把函数的处理结果数据返回给调用函数,即递归调用,所以一般把函数名变量称为返回值,函数的返回值类型是在定义函数时指定的。
函数可以有返回值,也可以没有返回值。
1、没有返回值的函数:功能只是完成一个操作,应将返回值类型定义为void,函数体内可没有return语句。
2、有返回值的函数:函数的最后会有一个返回值return,可以用来获取该函数执行结果返回给该函数,让外部调用该函数的。
一个函数的函数名既是该函数的代表,也是一个变量。由于函数名变量通常用来把函数的处理结果数据返回给调用函数,即递归调用,所以一般把函数名变量称为返回值,函数的返回值类型是在定义函数时指定的。
(3)c语言返回值类型扩展阅读
C程序中的print函数:
是这样写的:printf("%d ",printf("%d",printf("%d",i)));
一共有三个printf函数,我们可以使用一些代号来简化这个printf函数,如下:
代号A: printf("%d",printf("%d",i));
代号B: printf("%d",i)
则C程序代码可以简化为:printf("%d ",A); 那么我们就先来求A。而A,又可以简化为:printf("%d",B);那么就先来求B。
B是 printf("%d",i),打印出“123”,即在C语言运行结果中,你最先看到的是123。C语言printf函数的返回值是printf实际控制输出的字符数,那么打印的123 就是3个字符,因此printf("%d",i)返回的就是3,也就是B是3。
那么,A就可以写为printf("%d",printf("%d",3));打印出3,即在运行结果中,你紧接着会看到3。
而打印出的3是1个字符,因此A就是1,那么printf("%d ",A); 实际上就是printf("%d ",1); 打印出1。
④ C语言函数返回类型
函数调用结果的返回值,可以通过3个途径获得。
(1)函数自身返回
(2)通过函数参数返回
(3)通过全局量返回。
到底用那种方法,取决于耐胡程序员的考虑。
Node* --通过 函数自身返回,返回一个结构指针,指向 Node 型结构。
int -- 通过 函数自身返回,返回一个整型量。
CreateLinkList 是建链表,返回汪哪Node* 结构指针
GetElem 获取元素单元,返回Node* 结构指昌陵拦针
InsertLinkList 用 int 表示插入成功或失败,或用 int 表示什么。
这些 都 取决于程序员的考虑。 没有绝对的规定。
⑤ c语言返回值具体是指什么
子函数的返回值,main主函数也是有返回值的,但是一般用不到都忽略掉了,一般来说的返回值就是子函数的返回值。当需要一个函数去处理数据时,如求平方,这时候求平方后的值可以有两种方法表达
1、以值的形式返回给你,即return x,这样就可以利用这个结果了,此时函数名前当然要加返回的数据类型了
2、当不需要对这一结果进一步处理时,直接printf,这样可以直接在终端上显示结果了,这时就没必要去加了,直接VOID
(5)c语言返回值类型扩展阅读
void:声明函数无返回值或无参数,声明无类型指针,显示丢弃运算结果。(C89标准新增)
如果一个变量声明时在前面使用 * 号,表明这是个指针型变量。换句话说,该变量存储一个地址,而 * 则是取内容操作符,意思是取这个内存地址里存储的内容。指针是 C 语言区别于其他同时代高级语言的主要特征之一。
指针不仅可以是变量的地址,还可以是数组、数组元素、函数的地址。通过指针作为形式参数可以在函数的调用过程得到一个以上的返回值,不同于return(z)这样的仅能得到一个返回值。
⑥ C语言中函数返回类型和函数返回值
函数的返回值通过return语句来执行,即return后的变量或表达式的值,就为该函数的返回值(你可以根据需要自定义返回什么值),而返回值的类型是指该值你想要得到的类型,比如return
a;(a的类型,你在函数体里定义的是int
a;但根据需要,你要的是一个float型的返回值),于是,这样定义一个函数:
float
函数名(参数列表)
{
int
a;
函数体;
……
return
a;
}
这样,返回值a就变成了float型。
⑦ C语言中 关于返回值 谁能具体讲一下
你这个问题很笼统
我就大概说下返回值的东东吧
在C语言里面所谓返回值是说一个函数当他执行到return的时候他会停止执行下面的语句向引用他的地方传递一个值
下面举例子说明
int
pp(void
)
//那个int就代表返回值的类型
{
……
return
0;
//这个就代表给执行pp这个函数的地方返回int类型的0
}
如果在主函数中有一句a=pp();那么等号右边就等于int
类型的0
,如果a是int类型那么a就等于0
return后面还可以接表达式
int
kk(int
a,int
c)
{
return
a+c;
//这个就代表给执行pp这个函数的地方返回a+c的结果
}
如果调用的地方写int
k;
k=kk(3,4);那么结果就是k等于7
当然返回值类型不是只有int
还可以有char
float那些和结构体类型
如果你不需要返回的时候可以写void
kk(void){}这样就不会返回了
但是如果你是写
kk(void){}没有前面的void默认是给你在前面补上int的而不是无返回值
还有什么问题你再追问吧
⑧ c语言if的返回值类型
#include<stdio.h>
#include<stdlib.h>
int main()
{
int year,flag;
printf("Enter year:");
scanf("%d",&year);
if(year%4==0&&year%100!=0)
flag=1;
else
flag=0;
if(year%400==0)
printf("%d is a leap year! ",year);//是闰年
else
printf("%d is not a leap year ",year);//不是
return 0;
}
(8)c语言返回值类型扩展阅读:
return表示把程序流程从被调函数转向主调函数并把表达式的值带回困袜主调函数,实现函数值的返回,返回兆滑时可附带一个返回值,由return后面的参数指定。
return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。如果函数执行不需要汪猜激返回计算结果,也经常需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态码),主调函数可以通过返回值判断被调函数的执行情况。
⑨ 决定C语言中函数返回值类型的是【 】
决定C语言中函数迅腊返回值类型的是定义函数时在函数首部团昌亏所指定的类型。
在C语言中,一个标准的函数定义语句块必须包含函数返回值的类型标识符、函数名、形参类型及数量、函数体、返回值表达式。如果函数返回值类型为 void (即无返回值)。
函数定义示例(其中int是函数返回值类型):
int fun(int a, int b){
return a>b ? a : b;
}
(9)c语言返回值类型扩展阅读
C语言函数类型种类举例介绍:
1、void 空类型,表示该函数塌神无返回值;
2、int 整形,表示该函数返回int整形数值;
3、double 双精度,函数返回双精度数值;
4、char 字符串,函数返回字符串;
5、long 长整型,函数返回长整型数值;
⑩ C语言规定,函数返回值的类型由什么决定
c语言规定,函数返回值的类型是由函数首部定义的类型决定。函数返回值应与首部定义的类型一致,如若不一致,则自动将返回值强制转换为函数首部定义的类型。没有定义类型时默认为int型。
也就是说你的函数是什么类型,返回值就是什么类型。
比如:
函数定义 int fun(int a,char b)
返回值就是整型
函数定义 int *fun(int a)
返回值就是基类型为整型的指针
函数定义 void fun(int a)
无返回值
(10)c语言返回值类型扩展阅读
函数可以有返回值,只要 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_ptr<ObjType> GetObj();
返回值如果不要,作为临时变量,会立即被析构,返回的对象被释放;如果需要,就得赋值给另一个智能指针。总之不用程序员记得,编译器会保证这个对象的释放。
考虑第二个函数,稍微有一点麻烦,因为 auto_ptr 是不能用来持有数组的,不过,在C++的世界里,std::string 几乎总是比 char* 好用:
std::auto_ptr<std::string> Encode(const char* src);
最后考虑最麻烦的情况:
bool AssembleObjList(ObjType objList[], size_t length);