C语言菜鸟教程:数组指针

2024-05-0307:37:34编程语言入门到精通Comments319 views字数 2284阅读模式

基本用法

示例代码:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/63403.html

#include <stdio.h>

// 打印二维数组
void printArr2(int arr2[2][2]) {
    for (int i = 0; i < 2; ++i) {
        for (int j = 0; j < 2; ++j) {
            printf("%d ", arr2[i][j]);
        }
        printf("\n");
    }
    printf("======\n");
}

int main() {
    int arr[2][2] = {1, 2, 3, 4};
    printArr2(arr);

    // 定义数组指针
    // 这里的p表示的是一个二维数组
    int (*p)[2] = arr;
    printArr2(p);

    return 0;
}

输出:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/63403.html

1 2
3 4
======
1 2
3 4
======

通过数组指针将二维数组转换为一维数组

示例代码:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/63403.html

#include <stdio.h>

// 打印二维数组
void printArr2(int arr2[2][2]) {
    for (int i = 0; i < 2; ++i) {
        for (int j = 0; j < 2; ++j) {
            printf("%d ", arr2[i][j]);
        }
        printf("\n");
    }
    printf("======\n");
}

// 打印一维数组
void printArr(int arr[4]) {
    for (int i = 0; i < 4; ++i) {
        printf("%d ", arr[i]);
    }
    printf("\n======\n");
}

int main() {
    int arr[2][2] = {1, 2, 3, 4};
    printArr2(arr);

    // 通过数组指针将二维数组装换为一维数组
    int *pa = (int *) arr;
    printArr(pa);

    return 0;
}

输出:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/63403.html

1 2
3 4
======
1 2 3 4
======

优化一维数组打印方法

示例代码:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/63403.html

#include <stdio.h>

// 打印二维数组
void printArr2(int arr2[2][2]) {
    for (int i = 0; i < 2; ++i) {
        for (int j = 0; j < 2; ++j) {
            printf("%d ", arr2[i][j]);
        }
        printf("\n");
    }
    printf("======\n");
}

// 打印一维数组
// 优化1:将参数转换为指针类型
// 优化2:传入数组长度
void printArr(int *arr, int size) {
    for (int i = 0; i < size; ++i) {
        printf("%d ", arr[i]);
    }
    printf("\n======\n");
}

int main() {
    int arr[2][2] = {1, 2, 3, 4};
    printArr2(arr);

    // 通过数组指针将二维数组装换为一维数组
    int *pa = (int *) arr;
    printArr(pa, 4);

    return 0;
}

输出:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/63403.html

1 2
3 4
======
1 2 3 4
======

自动计算二维数组的总元素个数

示例代码:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/63403.html

#include <stdio.h>

// 打印二维数组
void printArr2(int arr2[2][2]) {
    for (int i = 0; i < 2; ++i) {
        for (int j = 0; j < 2; ++j) {
            printf("%d ", arr2[i][j]);
        }
        printf("\n");
    }
    printf("======\n");
}

// 打印一维数组
// 优化1:将参数转换为指针类型
// 优化2:传入数组长度
void printArr(int *arr, int size) {
    for (int i = 0; i < size; ++i) {
        printf("%d ", arr[i]);
    }
    printf("\n======\n");
}

int main() {
    int arr[2][2] = {1, 2, 3, 4};
    int size = (sizeof(arr) / sizeof(arr[0])) * (sizeof(arr[0]) / sizeof(arr[0][0]));
    printf("二维数组的总元素个数:%d\n", size);
    printArr2(arr);

    // 通过数组指针将二维数组装换为一维数组
    int *pa = (int *) arr;
    printArr(pa, size);

    return 0;
}

输出:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/63403.html

二维数组的总元素个数:4
1 2
3 4
======
1 2 3 4
======
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/63403.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/ymba/63403.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定