我是靠谱客的博主 诚心镜子,最近开发中收集的这篇文章主要介绍C语言---一维数组与二维数组,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

int arr [4]  //定义了一个一维数组,长度为4;说明以下三个分别是什么类型;

(1)arr //类型为int *,表示数组元素首地址,即图中箭头指向的位置。

(2)arr+1 //类型为int *,表示数组元素首地址+1,即图中箭头指向的位置。

(3)arr [0] //类型为int ,表示第一个元素,即图中红色的格子。

int brr [3][4]  //表示定义了一个3行4列的二维数组,说明以下三个分别是什么类型;

(1)brr //类型为int(*p)[4], 把一个二维数组想象成一个特殊一维数组并遵循行优先原则,那么也表示数组首地址,int(*p)[4]的含义就是整型指针p指向有4个格子的数组 ,就是数组指针(指向数组的指针),即图中箭头指向的位置。

(2)brr+1//类型为int * p[4],同样把二维数组想象成一维数组,那么brr+1就是首地址+1,即图中箭头指向的位置。

(3)brr [0]//类型为int *,brr[0]==arr,即图中红色的格子。

(4)brr [0]+1//类型为int *,因为指针加法不会改变指针的类型,即图中黄色的格子。

(5)brr [0][0]//类型为int,表示的是数组的第一个元素,即图中的黑色粗框。

总结:遇到复杂类型式子

        1.优先级

        2.看到以下符号

           [ ] 数组要考虑有几个格子;每个格子的数据类型;

         ()函数要考虑参数列表,返回值;

            *  指针要考虑指针指向的是什么 

练习:

(1)int(* p)[4]    ()的优先级比 * 优先级低,那么表示的是指针p指向的是有4个格子的数组;  

(2)int  * p [4]         [ ]的优先级比 * 优先级高,那么表示的是有4个格子的数组p,保存的是指针。

最后

以上就是诚心镜子为你收集整理的C语言---一维数组与二维数组的全部内容,希望文章能够帮你解决C语言---一维数组与二维数组所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部