函数

函数定义、声明和调用
形式:
<数据类型> <函数名称> (<形式参数说明>)
{
语句集;
return (<表达式>)
}
无参函数。 有参函数,空函数
参数类型:变量,指针,数组名,数组指针,函数指针。。。。
声明:函数在声明中可以省略形参,但这样编译器就不能检查实参和形参是否匹配, 所以不建议省略。  

函数传参与返回值
  • 函数未调用时,形参没有分配空间。调用时,系统为形参分配空间。调用结束后,所占内存单元被释放。
  • 实参可以是常量、变量或表达式。max(a, a+b);
  • 函数定义时要指定数据类型。
  • 实参与形参的类型相同或兼容。
  • C语言中,实参向形参传递参数是单向的,只能由实参传递给形参,反之不可以,在内存中,实参和形参占用的是不同的内存单元。
值传递与址传递
值传递
(分析值传递过程,值传递过程相当于隐含动作int a = x, int b = y)

址传递
典型strcpy实现
char * strcpy(char *dest, const char *source)
{
asssert(dest != NULL && source != NULL);
char * r = dest;
while ((*dest++ = *source++) != ‘\0’)
;
return dest;
}

返回值
  • 函数的返回值由return语句返回,如:return z; return (z); return (表达式)三种形式都可以,括号可以省略,保持简洁。
  • 函数值在类型不指定时,系统按整型处理。
  • 函数定义类型和返回类型保持一致。
  • void 定义的函数表示空类型;
函数调用
调用形式
  • 函数语句:printf(“”);
  • 函数表达式: a = read(buff, fd, n);
  • 函数参数: m = max(a, max(a, b));
  • 函数调用函数的几点说明:
被调用函数必须是存在的库函数或自定义函数;如果使用库函数,要在文件开头进行#include <> 进行头文件包含,对函数进行声明。
调用自定义函数时,被调用函数应该在调用函数前面,在主函数中进行被调用函数的声明。
声明可以函数声明可以在主函数内部或在主函数前面,也可以在主函数前面进行函数定义。函数类型省略的情况下,系统默认是int型.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值