数组与指针的联系

#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:30 天津
大佬怎么做到的
点赞 回复 分享
发布于 2023-02-14 11:03 山东

相关推荐

不愿透露姓名的神秘牛友
07-07 14:00
不想多说了,什么逆天HR,还要教我礼貌😂
机械打工仔:这不纯傻卵吗,他还操心上别人老板了
投递BOSS直聘等公司7个岗位
点赞 评论 收藏
分享
不亏是提前批,神仙打架,鼠鼠不配了
站队站对牛:现在92都报工艺岗了
投递韶音科技等公司7个岗位
点赞 评论 收藏
分享
评论
点赞
7
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务