一维数组的定义:
int a[100];
上面定义了一个数组a,可以保存100个数据,也就是从a[0]~a[99]。
相应的指针为:
int *p;
这是一维数组的指针简单形式,可以理解为上面一维数组对应的地址。比如:我需要把一个数字存储在数组a的第一个位置,即:a[0],那么p就是可以代表给这个数字存放的一个位置,这样说应该很好理解吧。
二位数组的指针二维数组的定义:
int a[3][2]
这个二维数组表示三行二列的一个二维数组,需要注意的一点是每一行的元素不一定都要装满,也就是说,即使第一行只有一个元素,但是仍然可以第二行是装满了元素的。元素分布如下表:
| a[0] [0] | a[0] [1] |
|---|---|
| a[1] [0] | a[1] [1] |
| a[2] [0] | a[2] [1] |
那么怎么用指针来表示呢?
用指针表示二维数组元素的方法很多,我在这里就只写一种我认为最简单的形式吧:
int (*a)[2]
这是行指针,也是最常用的指针,看懂了行指针,我相信列指针大家也可以自行去学习啦!(还有很多复杂的表示方法,相对更难理解,小斌在这里就不一一列举啦)
首先,声明的格式大家记住就好了,[2]表示的是这个指针每一行有两个元素(当然,你也可以输少于两个元素),接下来看一下怎么确定每个元素的地址:
| a[0]+0 | a[0]+1 |
|---|---|
| a[1]+0 | a[1]+1 |
| a[2]+0 | a[2]+1 |
注意啦!!!
a[i]+j表示的是地址而不是这个具体的数,而a[i] [j]表示的是这个二维数组中具体的数。
看完了上面这些用我的语言讲的概念,对你读c有没有帮助呢???
如果有,记得点赞收藏哦!!!
还有就是,一定要自己多练,多去尝试,这是进步的必要条件欧,具体的格式大家参考相关书籍,这篇文章只是帮助理解。
嘿嘿嘿,第一次写,希望能得到支持!!!



