C基础笔记(函数)
1.C基础笔记(Hello world)2.C基础笔记(输出函数)3.C基础笔记(常量与变量)4.C基础笔记(常量与变量2)5.C基础笔记(输入函数)6.C基础笔记(运算符1)7.C基础笔记(运算符2)8.C基础笔记(分支结构if-else)9.C基础笔记(for循环语句)10.C基础笔记(分支语句switch开关语句)11.C基础笔记(嵌套for循环)12.C基础笔记(while循环)
13.C基础笔记(函数)
14.C基础笔记(函数与变量)15.C基础笔记(数组)16.C基础笔记(二维数组)17. C基础笔记(指针)18.C基础笔记(函数指针)19.C基础笔记(字符串)20.C语言基础(结构体)21.C基础笔记(结构体的使用与嵌套)函数
1. 函数还有很多叫法,比如方法、子例程或程序,等等
2. 函数由一个函数头和一个函数主体组成。
- 返回类型:一个函数可以返回一个值。return_type 是函数返回的值的数据类型。有些函数执行所需的操作而不返回值,在这种情况下,return_type 是关键字 void。
- 函数名称:这是函数的实际名称。函数名和参数列表一起构成了函数签名。
- 参数:参数就像是占位符。当函数被调用时,您向参数传递一个值,这个值被称为实际参数。参数列表包括函数参数的类型、顺序、数量。参数是可选的,也就是说,函数可能不包含参数。
- 函数主体:函数主体包含一组定义函数执行任务的语句
#include <stdio.h> void show() //函数的定义 { printf("11"); return; } int main() { show(); //函数的的调用 show(); printf("22"); show(); printf("22"); return 0; }
结果:1111221122
函数的传值调用:
向函数传递参数的传值调用方法,把参数的实际值复制给函数的形式参数。
在这种情况下,修改函数内的形式参数不会影响实际参数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | #include <stdio.h> /* 函数声明 */ void swap( int x, int y); /* 函数定义 */ void swap( int x, int y) { int temp; temp = x; /* 保存 x 的值 */ x = y; /* 把 y 赋值给 x */ y = temp; /* 把 temp 赋值给 y */ return ; } int main () { /* 局部变量定义 */ int a = 100; int b = 200; printf ( "交换前,a 的值: %d\n" , a ); printf ( "交换前,b 的值: %d\n" , b ); /* 调用函数来交换值 */ swap(a, b); printf ( "交换后,a 的值: %d\n" , a ); printf ( "交换后,b 的值: %d\n" , b ); return 0; } |
交换前,a 的值: 100
交换前,b 的值: 200
交换后,a 的值: 100
交换后,b 的值: 200
函数的引用调用:
通过引用传递方式,形参为指向实参地址的指针,当对形参的指向操作时,就相当于对实参本身进行的操作。
传递指针可以让多个函数访问指针所引用的对象,而不用把对象声明为全局可访问。
#include <stdio.h> /* 函数声明 */ void swap(int *x, int *y); /* 函数定义 */ void swap(int *x, int *y) { int temp; temp = *x; /* 保存地址 x 的值 */ *x = *y; /* 把 y 赋值给 x */ *y = temp; /* 把 temp 赋值给 y */ return; } int main () { /* 局部变量定义 */ int a = 100; int b = 200; printf("交换前,a 的值: %d\n", a ); printf("交换前,b 的值: %d\n", b ); /* 调用函数来交换值 * &a 表示指向 a 的指针,即变量 a 的地址 * &b 表示指向 b 的指针,即变量 b 的地址 */ swap(&a, &b); printf("交换后,a 的值: %d\n", a ); printf("交换后,b 的值: %d\n", b ); return 0; }
结果:
交换前,a 的值: 100 交换前,b 的值: 200 交换后,a 的值: 200 交换后,b 的值: 100
与传值调用不同,引用调用在函数内改变了 a 和 b 的值,实际上也改变了函数外 a 和 b 的值
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET10 - 预览版1新功能体验(一)