C语言第六步:函数和指针

1.什么是函数?

程序是由很多个“零件”组成的,而函数就是这样一个零件,其通常由一个或多个语句组成完成某一项特定任务。
函数可分为库函数和自定义函数,先来谈谈经常被使用的库函数吧

2.库函数 

库函数是被封装好了的函数。C语言提供了C语言标准和库函数的约定到基础库中。

诸如:scanf、printf之类函数都是库函数,但正因为封装好了所以当我们调用的时候就需要包含#include开头的头文件。

3.指针

可能读者小萌新会好奇为什么我要突然在函数中穿插指针,那是因为在我们的自定义函数里面要需要这部分的知识啊,不过小萌新也不需要太担心,只是指针的一点点初阶知识,单纯让大家知道怎么是指针、指针怎么用于函数?

3.1什么是指针?

在C与语言学习过程里,指针是一个很重要的概念,它的作用是指示对象。

在广阔的内存空间里,存在着很多对象,这就需要用一种方式来各个对象在内存中的位置,也就是“地址”,地址也可以说成对象在内存存储中的位置编号。

3.2指针的简单操作

了解到地址这个个概念后,其实地址就是指针,跟着我一起来看下面这个语句

int a=10;

int *p=&a;

第一个语句很简单,初始化一个整型变量a;而第二个语句就要用到第三章学到的操作符了 

取地址符&写在变量(对象)a前就可以获得a的地址。在第二个语句的等号前是声明定义了一个指向int 型的指针变量p。也就是说p里面存储了a的地址。这句话也可以说成是p指向x。、

*p=20;

a会发生怎样变化呢,答案是a也会变成20.这是因为当 指针运算符*用在指针变量前时,就可以显示指向地对象的内容。

4.自定义函数 

事实上,我们不能仅仅依靠库函数,更多的功能等着我们自己去手动定义开发。

4.1自定义函数的声明和定义

自定义函数声明和定义都分三部分:返回类型、函数名、形参声明。

返回类型:返回值的类型

函数名:函数的名称,在调用时,使用函数名

形参声明:小括号括起来的一部分,用于接收形参

举个例子

#include <stdio.h>
int add(int a,int b)
{
return a+b;
}
int main()
{
int a=2,b=3;
int ret=add(a,b);
return 0;
}

这就是一个简单的加法函数定义和调用。

4.2声明和定义的注意事项

1.声明一般放于函数的调用之前

2.声明可以和定义放在一起,也可以将定义放于主调函数后面

3.定义也是一种特殊声明,不过若只有定义,就需要把定义放于主调函数开头。要不然计算机调用时将无法找到这一函数入口

4.3函数调用

实参:主调函数里面传过去的值

形参::被调函数里面函数参数

4.3.1传值调用

所谓传值就是将实参拷贝一份,传给形参,则形参值改变,实参不受影响

所以可以想到这种传参方式适用于不改变原有值的情况,

比如上图就可以看到,我送吗只是求和,无需改变两个数的值

4.3.2传址调用 

将函数外部变量内存地址传给函数参数,从而函数内部可以通过指针来操作外部变量

这种方法常用于需要操作原有值的情况

上个实例来看看

#include<stdio.h>
void swap(int a,int b)
{
int temp=a;
a=b;
b=temp;
}
int main()
{
int a=2,b=3;
swap(a,b);
return 0;
}

5.小尾巴

函数还有很多知识,比如嵌套调用、链式访问、以及最重要的函数递归,这个是难点也是重点。

不适合入门讲解,所以我将会单独出一篇算法博客来讲解递归函数

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值