数组与指针的联系

#include "cstdio"
#include "string"

int main() {
    int arr[4] = {0, 1, 2, 3};
    printf("%d\n", sizeof(int));
    for (int i = 0; i < 4; ++i) {
        printf("%d\n", arr[i]);
    }
    for (int i = 0; i < 4; ++i) {
        printf("%p\n", &arr[i]);
    }
    printf("%d\n", sizeof(arr));

    // 数组的名称 就是指向数组第一个元素的指针
    printf("%p\n", arr);
    printf("%p\n", &arr[0]);

    // 这就意味着我们可以使用数组的名称来访问数组
    printf("%d\n", *arr);

    // 访问后续的数组 我们可以给 arr+i 再来解引用,就可以访问数组中的元素了
    printf("%d\n", *(arr+1));
    printf("%d\n", *(arr+2));
    printf("%d\n", *(arr+3));

    // todo 当然,我们也可以在循环中 使用数组名称作为指针来访问数组元素
    for (int i = 0; i < 4; ++i) {
        printf("use the name of an arr to access element:%d\n", *(arr+i));
    }

    // 也可以通过这种方式来修改数组中的元素
    *(arr) = 10;
    *(arr + 1) = 20;
    *(arr + 2) = 30;
    *(arr + 3) = 40;
    for (int i = 0; i < 4; ++i) {
        printf("use the name of an arr to access element:%d\n", *(arr+i));
    }
    /*
     * todo
     *  It is also considered faster and easier to access two-dimensional arrays with pointers.
     *  And since strings are actually arrays, you can also use pointers to access strings.
     *  It is also considered faster and easier to access two-dimensional arrays with pointers.
     *  And since strings are actually arrays, you can also use pointers to access strings.
     */

    return 0;
}

全部评论
大佬怎么做到的
点赞 回复 分享
发布于 2023-02-14 11:03 山东
又是一个硬核内容
点赞 回复 分享
发布于 2023-02-14 11:30 天津

相关推荐

斑驳不同:还为啥暴躁 假的不骂你骂谁啊
点赞 评论 收藏
分享
ArisRobert:统一解释一下,第4点的意思是,公司按需通知员工,没被通知到的员工是没法去上班的,所以只要没被通知到,就自动离职。就是一种比较抽象的裁员。
点赞 评论 收藏
分享
点赞 7 评论
分享
牛客网
牛客企业服务