c语言 数组名作为函数的形参 例子
时间: 2023-07-15 10:12:19 浏览: 123
以下是一个使用数组名作为函数形参的 C 语言例子:
#include <stdio.h>
void printArray(int arr[], int size) {
int i;
for (i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
int main() {
int myArray[5] = {1, 2, 3, 4, 5};
printArray(myArray, 5);
return 0;
}
在上面的程序中,我们定义了一个名为 printArray
的函数,该函数接收一个整数数组和数组大小作为参数。在函数内部,我们使用一个循环遍历数组并打印每个元素的值。在 main
函数中,我们声明了一个名为 myArray
的整数数组,并将其传递给 printArray
函数,以及数组的大小(在这种情况下,数组大小是5)。在运行程序时,将输出 1 2 3 4 5
。
相关问题
struct 数组指针 作为函数形参
C语言中结构体数组指针作为函数参数
当涉及到将结构体数组指针作为函数参数传递时,可以显著提高程序性能并简化代码逻辑。下面详细介绍这一过程,并提供具体的实现示例。
定义结构体类型
首先定义一个简单的结构体来表示三维坐标:
typedef struct {
float x;
float y;
float z;
} Point3D;
创建结构体数组及其指针
接着创建一个包含若干个Point3D
类型的结构体数组,并声明指向该数组的指针:
int main() {
// 初始化三个点组成的数组
Point3D points[] = {{1.0f, 2.0f, 3.0f}, {4.0f, 5.0f, 6.0f}, {7.0f, 8.0f, 9.0f}};
// 获取points数组的第一个元素地址即为整个数组的基址
Point3D* pPoints = points;
process_points(pPoints, sizeof(points)/sizeof(Point3D));
return 0;
}
这里需要注意的是,在C语言里可以直接用数组名代替其第一个元素的地址[^3]。
编写处理函数
编写接受结构体数组指针作为输入参数的过程函数:
void process_points(Point3D* pointArray, size_t count) {
for (size_t i = 0; i < count; ++i){
printf("Processing point %zu: (%.2f, %.2f, %.2f)\n",
i + 1,
pointArray[i].x,
pointArray[i].y,
pointArray[i].z);
// 对每个point执行某些操作...
}
}
上述例子展示了如何利用指针有效地访问和修改外部定义好的结构体数组中的数据。
数组名作为函数参数,形参和实参的关系?
数组名作为函数参数时,实际上是传递了数组的首地址(也称为指针)。形参(函数内部的变量)接收的是这个地址,而不是整个数组的内容。当我们对形参进行操作时,实际上是在改变原数组的值,因为它们指向的是同一块内存。
形参和实参之间的关系类似于引用,而非复制。例如,在C语言中,可以这样理解:
void printArray(int arr[]) {
// 函数内部对arr的操作会影响原始数组
for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++) {
printf("%d ", arr[i]);
}
}
int main() {
int myArray[] = {1, 2, 3, 4, 5};
printArray(myArray);
return 0;
}
在这个例子中,printArray
函数通过arr
访问到myArray
数组的内容。当我们在main
函数里调用printArray(myArray)
时,实际上是把myArray
的首地址传给了形参arr
。
相关推荐
















