C语言之函数

函数(Function)
0.引言
算法的结构化设计
标准函数(库函数)和自定义函数
程序从main函数开始,在main函数结束
main函数可以调用其他函数,但是其他函数不能调用main函数,main函数是系统调用的。
————————————————————————————————————————————————————————————————————————————————————
1.有参函数和无参函数
参数:函数的一个明显特征是使用时带(),必要时,括号里面还要包括数据或是变量,称为参数;
所以,函数又可以分为有参函数和无参函数

无参函数
返回类型 函数名()
{
函数体
}

有参函数
返回类型 函数名(函数参数列表)
{
函数体
}

实际参数和形式参数

形参:被调用函数后面括号里面的变量名称
实参:主调用函数调用一个函数时函数后面括号里面的参数

函数不允许嵌套定义
void a()
{
……
void b()
{
……
}
……
}
————————————————————————————————————————————————————————————————————————————————————
2.返回值
通过return 语句进行返回的内容
返回值的类型必须和返回类型相同

void:
1.返回值
2.参数
————————————————————————————————————————————————————————————————————————————————————
3.函数的直接调用和间接调用
调用一个函数的时候必须要保证要么调用的函数定义在我的前面,要么就是已经完成了对函数的说明
声明的作用是把函数名,函数参数的个数和参数类型等信息通知编译系统,以便在遇到函数调用时,编译系统
能够正确识别函数并检查调用是否合法

int sum(int a,int b)
{
return a + b;
}
//int sub(int ,int );
int main()
{
int sub(int a,int b);
printf("sum = %d\n",sub(3,2));
printf("sub = %d\n",sum(3,2));
return 0;
}


int sub(int a,int b)
{
return a - b;
}

声明和定义是有区别的!!!

在调用一个函数的过程中,直接或者是间接的调用本身,称为函数的递归调用

3.猴子吃桃子问题

————————————————————————————————————————————————————————————————————————————————————
4.局部变量和全局变量
局部:在函数内定义的变量(包括形参)
全局: 在函数外定义的变量

局部可以和全局重名
同名不要紧,只要域不同
具体看哪个,就近往上找
————————————————————————————————————————————————————————————————————————————————————
5.进程的地址空间
详见图示
————————————————————————————————————————————————————————————————————————————————————
6.存储变量类别
自动的 auto  可以省略的,所有变量默认都是auto的,也就是自动分配内存空间
静态的 static
1. 局部变量,局部变量只初始化一次;
2. 全局变量,函数,代表只能在本文件被使用
外部的 extern
只能修饰全局变量和函数,代表可以被其他文件引用
寄存器的  register
请求编译器将其尽可能的存放在CPU内部的寄存器里面,而不是通过内存寻址,以提高效率
register int a;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值