大家好,欢迎来到IT知识分享网。
文章目录
函数
1.函数概念
函数:C语言中函数是完成某项特定任务的小代码。
2.库函数
2.1标准库和头文件
C语⾔标准中规定了C语⾔的各种语法规则,C语⾔并不提供库函数,
3.自定义函数
3.1函数语法形式
type fun-name( 形参) { } 即 函数类型 函数名 (形参)
函数返回类型从广义有两种
- viod 表示 什么都不用返回。
- 其他类型 int char int* 等等。
3.2函数举例
经典加法函数举例 (单片机经典点亮LED)
#include <stdio.h> int Add(int x, int y) {
return x + y; } int main() {
int a = 0; int b = 0; scanf("%d %d", &a, &b); int c = Add(a, b); printf("%d\n", c); return 0; }
4. 形参和实参
4.1 实参
#include <stdio.h> int Add(int x, int y) {
return x + y; } int main() {
int a = 0; int b = 0; scanf("%d %d", &a, &b); int c = Add(a, b); printf("%d\n", c); return 0; }
传递给函数的参数a和b,称为实际参数,简称实参。实际参数就是真实传递给函数的参数
4.2 形参
4.3 实参和形参的关系
5. return 语句
6. 数组做函数参数
#include<stdio.h> void Printf(int arr[], int sz) {
int i = 0; for (i = 0; i < sz; i++) {
printf("arr[%d]=%d ", i, arr[i]); } } void Assign(int arr[], int sz) {
{
int i = 0; for (i = 0; i < sz; i++) {
arr[i] = 1;//把数组的每一个元素都赋值为1 } } } int main() {
int arr[5] = {
1,2,3,4,5 }; int sz = sizeof(arr) / sizeof(arr[0]); printf("未改变前的数组\n"); Printf(arr, sz); Assign(arr, sz);//重新对数组赋值 printf("\n"); printf("改变后的数组\n"); Printf(arr, sz); return 0; }
上述 我写了两个函数
- 把数组中的所有元素都打印
- 把arr数组内所有元素改为1
7. 函数的声明和定义
函数的调用⼀定要满足,先声明后使用;
7.1 单个⽂件
#include <stdio.h> int Add(int x, int y) {
return x + y; } int main() {
int a = 0; int b = 0; scanf("%d %d", &a, &b); int c = Add(a, b); printf("%d\n", c); return 0; }
#include <stdio.h> int Add(int x, int y);//函数声明 要有“ ;” int main() {
int a = 0; int b = 0; scanf("%d %d", &a, &b); int c = Add(a, b); printf("%d\n", c); return 0; } int Add(int x, int y) //无“ ;” {
return x + y; }
如果上述代码 没有第二行 编译器 会报错
7.3 static和extern
#include <stdio.h> void test() {
//static修饰局部变量 static int i = 0; i++; printf("%d ", i); } int main() {
int i = 0; for (i = 0; i < 5; i++) {
test(); } return 0; }
可以发现 在 test 函数中 i 的值没有被覆盖 而是每次运行时 都存储了上一次的值 这是因为 static 修饰局部变量改变了变量的⽣命周期 只有程序结束,变量才销毁,内存才回收
⼀个全局变量被static修饰,使得这个全局变量只能在本源⽂件内使⽤,不能在其他源⽂件内使⽤
extern 是⽤来声明外部符号的,如果⼀个全局的符号在A⽂件中定义的,在B文件中想使用,就可以使用extern进⾏声明,然后使⽤。
小结
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/119700.html


