Java教程

【养成记】嵌入式挑战第2天,第二周第三讲-一级指针与一维数组

本文主要是介绍【养成记】嵌入式挑战第2天,第二周第三讲-一级指针与一维数组,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

【养成记】嵌入式挑战第2天,第二周第三讲-一级指针与一维数组

课程章节

物联网/嵌入式工程师 第二周第三讲 1-7 一级指针与一维数组

课程内容

指针与数组的联系、区别和本质等。

学习笔记

    1. 指针保存数组

    数组名代表数组首元素的地址
    a <====>&a[0] <====>0xdff30

    int a[5]; 数组共有5个元素,分别是a[0]~a[4];

    a[0] <====>int
    &a[0] <====>int *

    =====================================
    int a[5];
    int *p = &a[0];

    而a和&a[0]是等价的,故也可以有写法.
    int *p = a;

    1. 用一级指针遍历一维数组

    buf[i]<====>*(buf + i)<====>*(p + i)<===>p[i]

    1. 一级指针和一维数组的区别

    (1) 一级指针主要保存地址,占4bytes,而数组有多个内存空间用来存放不同的数据,空间较大。
    p的类型 int *
    a的类型 int [5]

    (2 )数组名是一个地址常量,表示数组首元素的地址,常量是不能更改.

    int a[5] = {10,20,30,40,50};
    a++; //由于是一个常量,用户不能更改.,这种代码是会报错的, a为地址常量,是数组第一个元素的地址,系统自动分配。

    图片描述

    1. a ,&a[0] 和 &a 之间的关系

    a[0]为int类型,故&a[0] + 1一次偏移一个int类型的大小,4 bytes.
    a为int [5]类型,故&a + 1 一次偏移一个int [5]类型的大小,20 bytes.

课程评价

通过这节课的学习,对指针与数组的关系及数组变量a有了更深的认识。

这篇关于【养成记】嵌入式挑战第2天,第二周第三讲-一级指针与一维数组的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!