首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将数组和矩阵传递给函数作为指针和指向C中的指针

在C语言中,数组和矩阵通常作为指针传递给函数。这是因为在C语言中,数组和矩阵实际上是指针的别名。当你将数组或矩阵作为参数传递给函数时,实际上是将其基址传递给函数。

以下是一个示例,说明如何将数组和矩阵作为指针传递给函数:

代码语言:c
复制
#include<stdio.h>

// 函数原型声明
void print_array(int *arr, int size);
void print_matrix(int *matrix, int rows, int cols);

int main() {
    int arr[] = {1, 2, 3, 4, 5};
    int matrix[][3] = {
        {1, 2, 3},
        {4, 5, 6},
        {7, 8, 9}
    };

    int arr_size = sizeof(arr) / sizeof(arr[0]);
    int matrix_rows = sizeof(matrix) / sizeof(matrix[0]);
    int matrix_cols = sizeof(matrix[0]) / sizeof(matrix[0][0]);

    print_array(arr, arr_size);
    print_matrix(matrix, matrix_rows, matrix_cols);

    return 0;
}

// 打印数组的函数
void print_array(int *arr, int size) {
    for (int i = 0; i< size; i++) {
        printf("%d ", *(arr + i));
    }
    printf("\n");
}

// 打印矩阵的函数
void print_matrix(int *matrix, int rows, int cols) {
    for (int i = 0; i< rows; i++) {
        for (int j = 0; j< cols; j++) {
            printf("%d ", *(matrix + i * cols + j));
        }
        printf("\n");
    }
}

在这个示例中,我们定义了两个函数:print_arrayprint_matrix。这两个函数都接受指向数组和矩阵的指针作为参数,并打印它们的元素。

main 函数中,我们定义了一个数组 arr 和一个矩阵 matrix。我们计算它们的大小,并将它们传递给相应的打印函数。

注意,在 print_matrix 函数中,我们使用了一个公式 *(matrix + i * cols + j) 来访问矩阵中的元素。这个公式将行和列组合成一个线性的索引,从而允许我们使用指针访问矩阵中的元素。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券