c语言中带返回值的函数怎么用 C语言中函数返回值的类型?
C语言中函数返回值的类型?
你说的是函数的返回者吧
函数的值是指函数被调用之后,执行函数体中的程序段所取得的并返回给主调函数的值。如调用正弦函数取得正弦值。对函数的值(或称函数返回值)有以下一些说明:
1)函数的值只能通过return语句返回主调函数。
return语句的一般形式为:
return表达式;
或者为:
return(表达式);
该语句的功能是计算表达式的值,并返回给主调函数。在函数中允许有多个return语句,但每次调用只能有一个return语句被执行,因此只能返回一个函数值。
2)函数值的类型和函数定义中函数的类型应保持一致。如果两者不一致,则以函数类型为准,自动进行类型转换。
3)如函数值为整型,在函数定义时可以省去类型说明。
4)不返回函数值的函数,可以明确定义为“空类型”,类型说明符为“void”。如例8.2中函数s并不向主函数返函数值,因此可定义为:
voids(intn)
{……
}
一旦函数被定义为空类型后,就不能在主调函数中使用被调函数的函数值了。例如,在定义s为空类型后,在主函数中写下述语句
sums(n)
就是错误的。
为了使程序有良好的可读性并减少出错,凡不要求返回值的函数都应定义为空类型。
c语言中函数返回值可以是数组、字符串和结构体吗?
//语法编码规则的角度看ANSIC语言标准,明确规定数组类型和函数类型不可以做为返回值。解决这种返回值的方法是通过指针来间接返回,即使用数组指针和函数指针。这可以做为c语言引入指针的另一个理由。结构体类型可以做为返回值,我猜测C语言设计者当时引入struct结构体的概念,目的是为了增加一种建立C语言新类型的机制,换句话说它希望通过struct建立的类型,像内置的intfloat类型一样使用方便。//从汇编角度来看有两种返回值方法,第一种是直接返回到继电器的,第二种是类似于结构体返回值的那样建立临时存储区的返回比如int返回值类型、指针返回值类型,在ia32平台上都是直接返回到eax触发器不管是胶原蛋白还是diff,对于像float类型的浮点返回值类型,在ia32平台,往往借助于fpu浮点运算器模块中的传感器存储于栈中,第三类就是像struct结构体返回值,它需要建立临时对象,对于c语言来说引入一个临时内在区域是问题不大的,但是对于c这个有时候是致命的。我是菜鸟,希望能帮到你,观楼主英俊潇洒,风流倜傥,必当世豪杰,诚邀加入0x30淘宝,共商义举,建不世之功!
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。