C语言入门篇--函数及数组用法
函数
函数是一段执行特定任务的独立代码块,可以被程序中其他部分调用。它使程序流程变得更易于阅读和理解。函数有返回值和不返回值两种类型。
定义函数
函数定义的一般形式如下:
返回值类型 函数名(形式参数列表)
{
函数体
}
其中,
- 返回值类型:函数返回值的类型,可以为任意类型。
- 函数名:函数的名称,它是唯一的。
- 形式参数列表:传入函数中的参数列表,可以为空。参数列表在圆括号中用逗号分隔。
- 函数体:函数执行的语句块,在花括号中。
下面是一个例子,该函数用于计算两个数的和:
#include <stdio.h>
// 函数声明
int add(int a, int b);
// 主函数
int main()
{
int a = 10;
int b = 20;
int result = 0;
// 调用函数
result = add(a, b);
printf("a + b = %d\n", result);
return 0;
}
// 函数定义
int add(int a, int b)
{
int result = 0;
result = a + b;
return result;
}
函数参数
函数参数可以是任何类型,包括基本类型(int、float等)、指针、结构体等等。
传值调用
当把参数按值传递给函数时,函数接收到的是变量的副本,函数中修改参数的值不会影响传入函数的变量的值。下面是一个例子:
#include <stdio.h>
void change_value(int x);
int main()
{
int a = 10;
printf("Before function call, a = %d\n", a);
// 调用函数
change_value(a);
printf("After function call, a = %d\n", a);
return 0;
}
void change_value(int x)
{
x = 20;
}
输出结果为:
Before function call, a = 10
After function call, a = 10
传址调用
当把指针传递给函数时,函数接收到的是指向变量实际地址的指针,函数中修改指针指向的变量的值会影响传入函数的变量的值。下面是一个例子:
#include <stdio.h>
void change_value(int *x);
int main()
{
int a = 10;
printf("Before function call, a = %d\n", a);
// 调用函数
change_value(&a);
printf("After function call, a = %d\n", a);
return 0;
}
void change_value(int *x)
{
*x = 20;
}
输出结果为:
Before function call, a = 10
After function call, a = 20
数组
数组是由元素组成的集合,它的每个元素都具有相同的数据类型。数组可以是一维的、二维的、三维的等等,每一维都有自己的大小。
定义数组
声明一个数组,需要指定元素的类型和数组的大小,如下所示:
int arr[10];
上述代码声明了一个包含10个int类型元素的数组arr。
初始化数组
数组初始化指定元素的值。可以在定义数组时对其进行初始化,或者使用赋值语句对其进行初始化。
静态初始化
静态初始化在定义数组时给出初始值,如下所示:
int arr[2] = {1, 2};
上述代码定义了一个包含2个int类型元素的数组arr,并给它们的初始值分别为1和2。
动态初始化
动态初始化是在定义完数组之后,再对每一个元素进行赋值。如下所示:
int arr[2];
arr[0] = 1;
arr[1] = 2;
上述代码定义了一个包含2个int类型元素的数组arr,并分别对它们进行赋值。
多维数组
多维数组是由一位或多维数组组成的数组。二维数组是最常用的多维数组,常用来表示表或矩阵。在定义多维数组时,需要指定每一维的大小,如下所示:
int arr[3][4];
上述代码声明了一个包含3行4列的二维数组arr。
遍历数组
可以使用for循环语句遍历数组中的元素,如下所示:
#include <stdio.h>
int main()
{
int arr[3] = {1, 2, 3};
int i = 0;
for (i = 0; i < 3; i++)
{
printf("%d\n", arr[i]);
}
return 0;
}
上述代码输出数组arr中的所有元素。
又如下所示,遍历二维数组:
#include <stdio.h>
int main()
{
int arr[3][4] = {
{0, 1, 2, 3},
{4, 5, 6, 7},
{8, 9, 10, 11}
};
int i = 0, j = 0;
for (i = 0; i < 3; i++)
{
for (j = 0; j < 4; j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
上述代码输出二维数组中的所有元素。
示例说明
示例一:函数
下面是一个示例,该函数用于计算两个数的差:
#include <stdio.h>
// 函数声明
int subtract(int a, int b);
// 主函数
int main()
{
int a = 10;
int b = 20;
int result = 0;
// 调用函数
result = subtract(a, b);
printf("a - b = %d\n", result);
return 0;
}
// 函数定义
int subtract(int a, int b)
{
int result = 0;
result = a - b;
return result;
}
输出结果为:
a - b = -10
示例二:数组
下面是一个示例,该程序对一个一维数组进行排序:
#include <stdio.h>
int main()
{
int arr[] = {5, 4, 8, 3, 9, 1, 6, 2, 7};
int i = 0, j = 0, temp = 0;
// 冒泡排序
for (i = 0; i < 9; i++)
{
for (j = 0; j < 9 - i - 1; j++)
{
if (arr[j] > arr[j + 1])
{
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
// 输出排序后的数组
for (i = 0; i < 9; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
输出结果为:
1 2 3 4 5 6 7 8 9
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言入门篇–函数及数组用法 - Python技术站