怎么做企业网站,网站开发基础课程,网络设计教程,做滤芯的网站函数定义
前面说过C语言是结构化的程序设计语言#xff0c;他把所有问题抽象为数据和对数据的操作#xff0c;前面讲的变量、常量#xff0c;都是数据。现在开始讲对数据操作——函数。
C语言的函数#xff0c;定义方式如下#xff1a;
返回值类型 函数名(参数列表)
{…函数定义
前面说过C语言是结构化的程序设计语言他把所有问题抽象为数据和对数据的操作前面讲的变量、常量都是数据。现在开始讲对数据操作——函数。
C语言的函数定义方式如下
返回值类型 函数名(参数列表)
{
}
比如我们要定义一个函数返回值是一个32位的整形函数名为 sum参数是两个32位整形数据名称分别是 iA 和 iB。那么这个函数定义方式如下
int sum(int iA, int iB)
{}
其中 iA 和 iB 叫做函数sum的形式参数简称形参
如果这个函数的要实现的功能是把两个参数 iA 和 iB加起来和作为函数返回值返回就是下面这个代码
int sum(int iA, int iB)
{int iSum;iSum iA iB ;return iSum;
}
我们再复习一下前面讲过C语言是从main函数开始执行的因此再在sum 函数的下面定义一个mian函数就可以在main中调用sum了像下面这样
int sum(int iA, int iB)
{int iSum;iSum iA iB ;return iSum;
}int main(void)
{int iS ;iS sum(1, 2);printf(iS %d\r\n, iS);
}我们着重看下 sum 的调用方式
iS sum(1, 2);
这里的 1 和 2 叫做函数sum的实际参数简称实参
这里是 main函数调用了 sum函数从关系上讲main叫做主调函数sum叫做背调函数。
调用函数sum时会把 1 赋值给 iA把2 赋值给iB然后再把 iA iB 的和即 3 1 2赋值给 iSum再然后把 iSum的值作为函数 sum的返回值返回给主调函数。
再回到 main因为 iS 被赋值为 sum 函数值即返回值因此 iS 应该被赋值为 3。上述源码打印如下 函数返回值和参数的类型
所有的变量类型都可以作为函数返回值和参数的类型。特别的返回值和参数有一种特殊的类型 void。
当函数返回值为 void 时该函数没有返回值
但函数参数为 void 时该函数没有参数
比如定义一个没有返回值、没有参数的函数 delay
void delay(void)
{
}
形参和实参之间的值传递
看下面这段代码
int sum(int iA, int iB)
{int iSum;iA 3 ;iB 4 ;iSum iA iB ;printf(iA %d\r\n, iA);printf(iB %d\r\n, iB);printf(\r\n);return iSum;
}int main(void)
{int iS ;int a, b ;a 10 ;b 20 ;iS sum(a, b);printf(a %d\r\n, a);printf(b %d\r\n, b);printf(iS %d\r\n, iS);
}
这次调用 sum函数是实参是两个变量 a 和 b其中 a 被赋值为 10b被赋值为 20 。
这里我们要强调实参 a 与 形参 iA是两个不同的变量函数调用时只是把 a 的值赋给了 iA同理实参 b 与 形参 iB也是两个不同的变量。
因此上面的代码中在sum函数里虽然我给形参 iA 加3变成了 13给形参 iB加4变成了 14所以函数返回值应该是27。
但是实参 a 和b的值并没有变分别还是10 和 20。
所以上面的代码的运行结果如下 这里强调一下
C语言里所有的参数传递都是值传递即形参值改变不影响实参的值。