黑马程序员—C语言—函数小结
来源:互联网 发布:吾爱源码下载 编辑:程序博客网 时间:2024/06/14 19:01
—————————Java培训、Android培训、iOS培训、.Net培训、期待与您交流! —————————
一、函数
C语言程序是由函数构成的。任何一个C语言程序都是由一个或者多个程序段(小程序)构成的,每个程序段都有自己的功能,我们一般称这些程序段为“函数”。
1.什么情况下需要定义函数:添加一个常用的新功能的时候,我们可以写一个函数来封装这一个新功能,以方便我们平时的调用。
2.函数的定义格式
返回值类型 函数名(形式参数列表){ 函数体}例如:定义一个函数,计算两个整数的和
(int) sum(int a, int b){ int c; c = a + b; return c;}只要这样的函数封装好了,我们就可以在其他函数中直接调用该函数。利用函数的功能大大提高了程序员的工作效率呢~
总结函数一般要求:
(1)起一个有意义的函数名
(2)确定形式参数(换句话说,就是需不需要其他人传递一些东西给该函数)
(3)是否要return返回值给函数的调用者
3.区分形式参数与实际参数
1)形式参数:定义函数对函数名后面中的参数,简称形参。
2)实际参数:调用函数时传入的具体数据,简称实参。
4.关于参数的几个注意点
1)实参个数必须等于形参个数。
2)函数体内部不能定义和形参一样的变量。
3)如果是基本数据类型作为函数形参,纯粹的时值传递,修改函数内部形参的值,并不会影响外面实参的值。
4)一个函数可以没有形参,也可以有无限多个形参。
例如:
int sum(num1, num2, ..., sumN)
其中注意点的第三小点,着重提出。
体会值传递与地址传递的不同之处。
#include <stdio.h>void change (int array[]);int main(){ //输入一串数组 int ages[] = {10, 11, 12, 15, 9, 3, 20}; printf("ages = %p\n", ages); change(ages); printf("%d\n", ages[0]); return 0;}//int array[] = ages[]//这将地址传递进了array,所以是可以更改[0]的值//定义一个函数change改变数组中的值void change (int array[]){ printf("array = %p\n", array); array[0] = 100;}
程序中如果将函数change改为
void change (int a){ printf("a = %p\n", a); a = 100;}
则改变不了main函数中的值。因为这样只是简单的值传递。
而用数组或者指针则是地址传递,这样可以将原来的数据通过对相应地址的修改来改变原数据的值。
5.return返回值
1)返回值就是函数调用完后,返回给函数调用者的结果,用return关键字进行返回。定义函数时,要指明函数的返回值类型
2)一个函数可以没有返回值,如果没有返回值,应该用void表示返回值类型
3)如果一个函数没有返回值,最后面的return语句可以省略
4)如果一个函数没有明确写出返回值类型,那么代表这个函数的返回值类型是int
5)如果有返回类型,也可以不返回
函数的总结与注意点:
1.默认情况下,不允许有函数的名称一样
2.函数不能嵌套定义
3.函数不能重复定义,但可以重复声明
4.如果有函数的声明,没有函数的定义
1)编译可以通过,因为编译器只会检测语法合不合理,并不会检测函数是否定义
2)链接报错,因为链接时会检测函数是否定义
- 黑马程序员—C语言—函数小结
- 黑马程序员——c语言函数
- 黑马程序员--C语言——函数
- 黑马程序员——C语言---函数
- 黑马程序员—C语言_函数
- 黑马程序员——C语言总结--易犯错误小结
- 黑马程序员——C语言总结--易犯错误小结
- 黑马程序员—C语言—其他数据类型及小结
- 黑马程序员—C语言—运算符小结
- 黑马程序员——C语言指针使用小结
- 黑马程序员————C语言函数
- 黑马程序员——C语言——函数
- 黑马程序员——C语言——函数
- 黑马程序员——c语言学习—函数
- 黑马程序员———C语言 函数
- 黑马程序员——C语言基础05—函数
- 黑马程序员——C语言函数篇
- 黑马程序员——C语言函数知识点
- Gradle用户指南之初学者教程(三)
- java 资料必备
- oracle集合查询
- poj 1222 Extended lights out (emulator)
- android入门系列之 编译android源代码以及ramdisk.img system.img userdata.img 介绍
- 黑马程序员—C语言—函数小结
- 开始刷题leetcode day3: Path Sum
- VC++动态链接库(DLL)编程深入浅出(zz)
- 延伸的正则表达式
- VolgaCTF2015之lcg的writeup
- 否定先生的第一个CSDN博客
- css 利用table 及 noWrap 实现一列优先使用宽度,另外一列自适应
- linux安装jdk
- 定时任务-quartz的使用,实现可页面化管理