亲子之家网—你身边的文案专家

亲子之家网—你身边的文案专家

c语言函数总结?

59

一、函数的基本概念

定义

函数是独立可复用的代码块,可接收输入、处理数据并返回结果。其逻辑结构包含参数列表和函数体。

功能与分类

- 有参函数:

接受参数(如`int add(int a, int b)`)

- 无参函数:不接受参数(如`void print_hello()`)

- 返回值函数:执行后返回结果(如`int max(int a, int b)`)

- 无返回值函数:仅执行操作(如`void swap(int *x, int *y)`)

二、函数的定义与声明

定义格式

```c

返回类型 函数名(参数类型 参数名, ...) {

// 函数体

return 表达式;

}

```

- 例如:`int add(int a, int b) { return a + b; }`

- 注意:函数体必须用大括号包裹,且仅能有一个`return`语句

声明方式

- 函数原型:

提前告知编译器返回类型、参数类型及名称

```c

int add(int, int);

```

- 位置:可置于头文件或源文件开头

三、函数的调用

基本语法

```c

函数名(参数值1, 参数值2, ...);

```

- 例如:`int result = add(3, 5);`

- 需传递参数类型匹配的值

特殊说明

- 返回值赋值:

需使用变量接收返回值

```c

int sum = calculate_sum(10, 20);

```

- 无返回值函数:调用后无输出,仅执行操作(如打印)

四、参数传递机制

值传递

- 基本数据类型(如`int`)传递副本,修改不影响原变量

- 示例:

```c

void swap(int x, int y) { int temp = x; x = y; y = temp; }

// 调用后原变量不变

```

指针参数

- 通过地址传递,修改原变量

- 示例:

```c

void real_swap(int *x, int *y) { int temp = *x; *x = *y; *y = temp; }

// 调用后原变量改变

```

数组参数

- 以指针形式传递,需注意数组边界

- 示例:

```c

void print_array(int *arr, int len) { for (int i = 0; i < len; i++) printf("%d ", arr[i]); }

```

五、返回值与注意事项

返回值类型

- 与函数声明的返回类型一致(如`int`、`void`)

- 示例:

```c

int max(int a, int b) { return a > b ? a : b; }

```

返回指针的陷阱

- 需确保指针有效且指向可修改内存

- 示例错误:

```c

int* dangerous_func() { int local = 100; return &local; } // 未初始化局部变量

```

六、常见函数示例

标准输入输出

- `printf`:格式化输出(如`printf("Hello, World!\n");`)

- `scanf`:格式化输入(如`scanf("%d", &num);`)

字符串操作

- `strlen`:计算字符串长度(如`strlen(str);`)

- `strcpy`:复制字符串(如`strcpy(dest, src);`)