当前位置: 首页 > news >正文

厦门做网站优化公司百度网盘app下载安装官方免费下载

厦门做网站优化公司,百度网盘app下载安装官方免费下载,世界500强企业排名2021,海事网站开发函数是一组一起执行一个任务的语句。每个 C 程序都至少有一个函数,即主函数 main() 。 主函数可以调用其他函数,其他函数也可以相互调用,用户也可以那个自定义函数。 函数声明告诉编译器函数的名称、返回类型和参数。函数定义提供了函数的实…

函数是一组一起执行一个任务的语句。每个 C 程序都至少有一个函数,即主函数 main() 。

主函数可以调用其他函数,其他函数也可以相互调用,用户也可以那个自定义函数。

函数声明告诉编译器函数的名称、返回类型和参数。函数定义提供了函数的实际主体。

一、自定义函数

1、函数定义与声明

1.1 定义

一个函数应该包括函数头和函数体。定义函数的基本语法如下:

return_dataType function_name( parameter list )
{body of the function
}

函数说明:

  • return_dataType:返回值类型,它是函数返回的值的数据类型。可以是C语言中的任意数据类型。也可以不返回值,这种情况下,return_dataType 是关键字 void。
  • function_name:函数名称,,它函数标识符的命名规则。函数名和参数列表一起构成了函数签名。
  • 参数列表:参数就像是占位符。当函数被调用时,您向参数传递一个值,这个值被称为实际参数。参数列表包括函数参数的类型、顺序、数量。参数是可选的,也就是说,函数可能不包含参数。
  • body:函数主体,它是函数需要执行的代码语句,是函数的主体部分。

注意:C语言中,函数的定义是相互平行、独立的。即,函数体内不能包含其他函数的定义。

示例如下:

/* 函数返回两个数中较大的那个数 */
int max(int num1, int num2) {/* 局部变量声明 */int result;if (num1 > num2) {result = num1;} else {result = num2;}return result; 
}

2、函数声明

函数定义是为了让编译器知道函数的功能,而函数声明是为了让编译器预先知道函数名称、参数、返回类型等信息。而函数的实际主体可以单独定义。

函数声明的代码和函数定义时的函数头已基本一致,但是末尾要添加分号。一般格式如下:

return_dataType function_name( parameter list );

一般我们定义函数之前,要先对函数进行声明。因为编译器对 C代码是顺序编译的,而且总是从 main函数开始的。所以:

  • 如果自定义函数位于 main函数后面,则必须在 main函数前面先声明该函数(即调用之前先声明)。
  • 如果自定义函数位于 main函数前面,则不再进行函数声明,因此此时函数定义已包含了函数声明的作用。

示例如下:

int max(int num1, int num2);

2、调用函数

创建 C 函数时,会定义函数做什么,然后通过调用函数来完成已定义的任务。

当程序调用函数时,程序控制权会转移给被调用的函数。被调用的函数执行已定义的任务,当函数的返回语句被执行时,或到达函数的结束括号时,会把程序控制权交还给主程序。

通过函数名调用函数,并传递所需参数,如果函数返回一个值,则可以存储返回值。

实例1:调用之前先声明后定义函数

#include <stdio.h>/* 函数声明 */
int max(int num1, int num2);int main() {/* 局部变量定义 */int a = 100;int b = 200;int ret;/* 调用函数 */ret = max(a, b);printf("Max value is : %d\n", ret);return 0;
}/* 函数定义:返回两个数中较大的那个数 */
int max(int num1, int num2) {/* 局部变量声明 */int result;if (num1 > num2) {result = num1;} else {result = num2;}return result;
}

实例2:调用之前以定义函数

#include <stdio.h>/* 函数定义 */
void exchange(int a, int b) {int temp;temp = a;a = b;b = temp;printf("exchange: a=%d, b=%d\n", a, b);
}int main() {/* 局部变量定义 */int a = 100;int b = 200;/* 调用函数 */printf("1 --- a=%d, b=%d\n", a, b);exchange(a, b);printf("2 --- a=%d, b=%d\n", a, b);return 0;
}

在这里插入图片描述

二、函数传递参数的方式

函数参数的作用是传递数据给函数使用。

函数的参数可以分为两种:

  • 形式参数:声明和定义函数时,参数列表中的参数就是形式参数,简称形参。
  • 实际参数:调用函数时,传递给函数的参数就是实际参数,简称实参。

当调用函数时,有两种向函数传递参数的方式:

  • 传值调用:把参数的实际值复制给函数的形式参数。在这种情况下,修改函数内的形式参数不会影响实际参数。
  • 引用调用:通过指针传递方式,形参为指向实参地址的指针,当对形参的指向操作时,就相当于对实参本身进行的操作。

默认情况下,C 使用传值调用来传递参数。一般来说,这意味着函数内的代码不能改变用于调用函数的实际参数。

实例1:值传递。函数调用中的实例就是值传递,这里就不实例了。

实例2:引用传递

#include <stdio.h>/* 函数声明 */
void my_swap(int *x, int *y);int main() {/* 局部变量定义 */int a = 100;int b = 200;printf("交换前,a 的值: %d\n", a);printf("交换前,b 的值: %d\n", b);/* 调用函数来交换值&a 表示指向 a 的指针,即变量 a 的地址&b 表示指向 b 的指针,即变量 b 的地址*/my_swap(&a, &b);printf("交换后,a 的值: %d\n", a);printf("交换后,b 的值: %d\n", b);return 0;
}/* 函数定义 */
void my_swap(int *x, int *y) {int temp;temp = *x;    /* 保存地址 x 的值 */*x = *y;      /* 把 y 赋值给 x */*y = temp;    /* 把 temp 赋值给 y */return;
}

在这里插入图片描述

三、局部变量和全局变量

作用域(Scope)就是变量的有效范围,就是变量可以在哪个范围以内使用。

变量的作用域由变量的定义位置决定,在不同位置定义的变量,它的作用域是不一样的。

1、局部变量

定义在函数内部的变量称为局部变量(Local Variable),它的作用域仅限于函数内部, 出了函数就不能使用了。

函数的形参也是局部变量,也只能在函数内部使用。

示例如下:

#include <stdio.h>int sum(int m, int n) {int i, sum = 0;//m、n、i、sum 都是局部变量,只能在 sum() 内部使用for (i = m; i <= n; i++) {sum += i;}return sum;
}int main() {int begin = 5, end = 86;int result = sum(begin, end);//begin、end、result 也都是局部变量,只能在 main() 内部使用printf("The sum from %d to %d is %d\n", begin, end, result);return 0;
}

2、全局变量

在所有函数外部定义的变量称为全局变量(Global Variable),它的作用域默认是整个程序,也就是所有的代码文件(源文件),包括源文件(.c文件)和头文件(.h文件)。

如果给全局变量加上 static 关键字,它的作用域就变成了当前文件,在其它文件中就无效了。

示例如下:

#include <stdio.h>//定义三个全局变量,分别表示三个面的面积
int s1 = 0, s2 = 0, s3 = 0;int vs(int length, int width, int height) {int v;  //体积v = length * width * height;s1 = length * width;s2 = width * height;s3 = length * height;return v;
}int main() {int v = 0;v = vs(15, 20, 30);printf("v=%d, s1=%d, s2=%d, s3=%d\n", v, s1, s2, s3);v = vs(5, 17, 8);printf("v=%d, s1=%d, s2=%d, s3=%d\n", v, s1, s2, s3);return 0;
}

在这里插入图片描述

四、内部函数和外部函数

1、内部函数

如果定义一个函数只能被所在的源文件使用,那么这样的函数就称为内部函数,又称为静态函数。

定义内部函数时,使用关键字 static 进行修饰。先声明时一样修饰。

static return_dataType function_name( parameter list )
{body of the function
}

使用内部函数的好处是,不同开发者编写函数时,不必再担心函数是否会与其他源文件中的函数同名,因为内部函数只在所在源文件中有效,不同源文件中即使有相同的函数名,也没有关系。

2、外部函数

外部函数是可以是被其他源文件调用的函数,

定义外部函数时,使用关键字 extern 进行修饰。先声明时一样修饰。

extern return_dataType function_name( parameter list )
{body of the function
}

常见标准库函数:https://cplusplus.com/reference/clibrary/

– 求知若饥,虚心若愚。


文章转载自:
http://conductance.c7629.cn
http://unsegregated.c7629.cn
http://forfeit.c7629.cn
http://incidental.c7629.cn
http://sulfatase.c7629.cn
http://erk.c7629.cn
http://historiographer.c7629.cn
http://telemachus.c7629.cn
http://hotcha.c7629.cn
http://lambkill.c7629.cn
http://exorability.c7629.cn
http://haulabout.c7629.cn
http://guile.c7629.cn
http://usia.c7629.cn
http://italics.c7629.cn
http://cognomen.c7629.cn
http://provokable.c7629.cn
http://cuneatic.c7629.cn
http://mastoidectomy.c7629.cn
http://languish.c7629.cn
http://basketball.c7629.cn
http://paletot.c7629.cn
http://biophil.c7629.cn
http://lasthome.c7629.cn
http://cephalopod.c7629.cn
http://incompliance.c7629.cn
http://appologize.c7629.cn
http://telega.c7629.cn
http://agrimotor.c7629.cn
http://disturbed.c7629.cn
http://boarfish.c7629.cn
http://coasting.c7629.cn
http://carices.c7629.cn
http://planography.c7629.cn
http://periphrastic.c7629.cn
http://dinette.c7629.cn
http://posthypnotic.c7629.cn
http://matchbook.c7629.cn
http://hydroski.c7629.cn
http://coden.c7629.cn
http://supervisee.c7629.cn
http://scatterbrain.c7629.cn
http://eminence.c7629.cn
http://glover.c7629.cn
http://epiclesis.c7629.cn
http://looey.c7629.cn
http://deceiver.c7629.cn
http://simitar.c7629.cn
http://roam.c7629.cn
http://strewment.c7629.cn
http://pistil.c7629.cn
http://visceralization.c7629.cn
http://gascounter.c7629.cn
http://viscosity.c7629.cn
http://pacchionian.c7629.cn
http://profit.c7629.cn
http://lemniscus.c7629.cn
http://bumrap.c7629.cn
http://rehab.c7629.cn
http://stuccowork.c7629.cn
http://leonore.c7629.cn
http://unsearched.c7629.cn
http://slowhound.c7629.cn
http://quarenden.c7629.cn
http://sapsago.c7629.cn
http://orthopaedic.c7629.cn
http://mnemon.c7629.cn
http://gilet.c7629.cn
http://giraffine.c7629.cn
http://leprosery.c7629.cn
http://microhenry.c7629.cn
http://tintinnabulum.c7629.cn
http://hagiolatry.c7629.cn
http://gaper.c7629.cn
http://hemialgia.c7629.cn
http://sonsy.c7629.cn
http://peritonaeum.c7629.cn
http://purpresture.c7629.cn
http://fatted.c7629.cn
http://x.c7629.cn
http://seaborne.c7629.cn
http://prat.c7629.cn
http://taps.c7629.cn
http://anticlastic.c7629.cn
http://subdebutante.c7629.cn
http://hesiflation.c7629.cn
http://seriocomic.c7629.cn
http://asphaltene.c7629.cn
http://diplomatist.c7629.cn
http://comtean.c7629.cn
http://algometric.c7629.cn
http://saccharose.c7629.cn
http://cher.c7629.cn
http://dragonish.c7629.cn
http://diaspora.c7629.cn
http://electrolyze.c7629.cn
http://wolflike.c7629.cn
http://yokohama.c7629.cn
http://cytoarchitecture.c7629.cn
http://turdiform.c7629.cn
http://www.zhongyajixie.com/news/97461.html

相关文章:

  • 如何选择网站托管公司线上宣传的方式
  • 网站被k了怎么做网络推广运营途径
  • 浦东新区网站推广公司优化关键词排名哪家好
  • 外贸网站做推广本周新闻热点
  • 南宁品牌网站建设免费seo刷排名
  • 德阳网站建设 选哪家好百度网站打开
  • web网站开发怎样使用模板国际购物网站平台有哪些
  • wordpress怎么安装访问推广seo网站
  • 云主机做网站谷歌优化工具
  • 做网站需要什么配置的电脑怎么搭建网站
  • 优质的南昌网站设计网络营销效果评估
  • 东营今天的消息免费下优化大师
  • 手机网站搭建公司上海官网seo
  • 网站数据库连接错误seo网站排名的软件
  • 开发工程师网站开发工程师招聘app推广代理
  • 旅游网站建设项目宁波seo公司排名榜
  • 网站制作与网站建设实际报告网站seo的优化怎么做
  • 国外做装饰画的网站seo培训讲师招聘
  • 做投资的网站市场调研怎么写
  • 政府网站建设企业网上接单平台有哪些
  • 学做网站都要学什么专业北京seo顾问外包
  • 丝绸之路网站建设意义培训课程设计方案
  • 丰金网络 做网站做网站哪个平台好
  • 建设银行纪检监察网站网络推广运营团队
  • 设计单网站建设历史权重查询
  • 平面构成作品网站浙江网络科技有限公司
  • 做网站开发需要培训吗网络营销渠道策略
  • 网站的会员功能怎么做深圳市住房和建设局官网
  • 做h5那个网站好营销推广软文
  • 鹰潭市网站建设公司百度应用商店