C语言之旅(2)数组

来源:互联网 发布:层次数据库模型举例 编辑:程序博客网 时间:2024/05/21 10:07

int arr[4]={1,2,3,4};

1.什么是数组?

数组就是一堆相同元素的集合。其实数组也是变量。

2.数组的类型是什么?

例如上面 的例子,去掉变脸股名arr,剩下的int  [4]就是数组的类型。

3.中括号的意义是什么?

在这里有两种意义:1.用于定义数组;2.用于间接引用。

4.什么是间接引用?

当你定义一个如上的数组的时候相当于向内存申请了一段连续的4个int类型的空间,也就是4*4=16个字节空间用于存储数组元素。

什么是数组元素,数组中的1,2,3,4就是数组元素。那么arr[0]就相当于访问的第一个元素1,arr[1]就是2,等等。这就是间接引用。

5变量名的含义?

arr是数组的名字,也是数组首元素的首地址,首元素就是1,所以arr就是元素1的地址。但是&arr又和arr不一样。&arr:是整个数组的地址。尽管他们数值是一样的,但是意义不一样,对于&arr来说每偏移一位,就相当于偏移了整个数组大小的内存空间。arr的地址类型是int,&arr的地址类型是int [4]。

如下图代码:

在这里面arr+1和arr的地址差别是4个字节,也就是一个元素的类型大小;而&arr和&arr+1的差别为整个数组的内存大小16个字节。

数组的下标为什么从0开始而不是从1开始呢?

因为,上面例题数组的名字arr就是数组首元素的首地址,那么arr[0]就相当于arr+0的意思。就是相对于首元素的偏移量。偏移量为0,所以取出来的就是第一个元素。一次类推进行偏移,直到最后。

原创粉丝点击