从“追求尽量不出错”,到正视“出错是必然|

如此而已~~~

园龄:3年3个月粉丝:0关注:12

C语言的用户自定义函数

C语言的用户自定义函数

相信大家对C语言的函数都不会很陌生我们一直都在C语言的main函数中编写我们的代码,这是C语言中唯一的一个主函数,c程序由这里开始也在这里结束。

函数的实现是需要“声明,定义,调用”三个过程。

#include <stdio.h>中的<stdio.h>中包含了一些库函数的定义语句如:printf(打印函数),scanf(输入函数)。这也是我们一开始用打印函数需要语句#include <stdio.h>的原因。它相当于直接完成了函数的声明和定义所以我们直接就可以在main函数中使用。

而用户自定义函数如:

#include <stdio.h>
int hanshu(int x);//函数的声明。
int main()
{
int x;
scanf("%d",&x);
printf("%d",hanshu(x));//函数的调用。
return 0;
}
int hanshu(int x)//函数的定义。
{
return x*x;
}

这里的:

int hanshu(int x);//返回值类型 函数名 (形式参数的数据类型 形式参数)

是函数的声明,前面的int是指函数的返回值类型。

hanshu是函数的函数名,需要满足字符串的合法形式即以字母和下划线开头的英文与数字组合。(最好用英文,不能与关键字重复)

括号里的int x是函数的形式参数。

int hanshu(int x)//相比较与声明少了;用{}代替了。
{
return x*x;//或者return(x*x); return返回空格后的数值。
}

是函数的定义,框架就是在声明的基础上以“{}”代替了“;”,而里面的内容是函数功能的语句描述,这里是返回这个数的平方。

printf("%d",hanshu(x));//传给函数变量x的值进行函数的调用。

这里的hanshu(x),是对函数的一个调用。

当然:

#include <stdio.h>
int hanshu(int x)
{
return x*x;
}
int main()
{
int x;
scanf("%d",&x);
printf("%d",hanshu(x));
return 0;
}

直接在声明时进行定义也是可以的。

接着我们说一说函数的运行过程:

首先我们需要了解形参与实参即“形式参数与实际参数”。

形式参数:即(int x)中的x,用于表示该函数需要传入一个什么类型的数,多少个数。

实际参数:即main函数中我们需要传递给函数的变量或常量。

在调用函数语句时实参会”单方向“的将值传递给形参,再由其参与定义语句中的语句进行函数的实现过程最后返回数值。

注意单方向,还有实参与形参需要一一对应。

单方向是指实参将值传递给形参但其自身却并没有发生变化。(可以在main语句中加上变量x的打印查看)

一一对应是因为函数的形参并不一定只有一个或者有多个且它们的数据类型也不一定相同,甚至有的函数根本没有参数的传递。

如:

#include <stdio.h>
void dayin()//void无返回值。
{
printf("**********");
}
int main()
{
dayin();
return 0;
}

还有函数不能嵌套定义,当可以进行嵌套调用如:

#include <stdio.h>
void dayin1()
{
printf("&&&&&&&&&&\n");
}
void dayin2()
{
printf("**********\n");
dayin1();
}
int main()
{
dayin2();
return 0;
}

函数的知识远不如此,本人初学者随笔仅供参考。

本文作者:如此而已~~~

本文链接:https://www.cnblogs.com/fragmentary/p/15853742.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   如此而已~~~  阅读(689)  评论(0编辑  收藏  举报
//雪花飘落效果
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起