一维数组(数值型数组)(eg:arr[10])

简介: 大家肯定对数组已经不陌生了,都见到过数组,比如arr[10] = {1,2,3,4,5,6,7,8,9,10};装的是整数。那么下面我们讲会系统的讲一下 一维数组的知识点。(针对数值型数组)首先我们需要了解什么是数组?

大家肯定对数组已经不陌生了,都见到过数组,比如arr[10] = {1,2,3,4,5,6,7,8,9,10};

装的是整数。那么下面我们讲会系统的讲一下 一维数组的知识点。(针对数值型数组

首先我们需要了解什么是数组?


1.数组的创建

1.1数组的概念:一组相同类型的元素的集合。

1.2数组的创建方式

type_t  name   [const_n]
type_t //数组的元素类型
name  // 数组名字
const_n   //数组的大小,长度


例如

int arr[10];
char ch[10];
float arr2[5];
double arr3[7];

以上就是对数组进行创建的方式。

上面数组的大小都是常量,那我们可不可以这样写?

int n = 10;
int arr[n];

数组创建,在C99标准之前, [] 中要给一个常量才可以,不能使用变量。在C99标准支持了变长数组的概念,数组的大小可以使用变量指定,但是数组不能初始化。

1.2 数组的初始化


数组的初始化是指在创建数组的同时给数组的内容一些合理初始值。

int arr[10] = {1,2,3,4};
int arr2[] = {1,2,3};
int arr3[5] = {1,2,3,4,5};
char arr4[3] = {'a',98,'c'};
char arr5[] = {'a','b','c'};
char arr6[] = "abcdef";

我相信大家看到这里肯定会有疑问

第一个数组是10个长度,我们却初始化4个元素,那后六个元素是什么,还是不存在?

第二个数组没有定义长度,那他的大小是什么?

我们可以通过程序运行一下

我们可以看到这里数组的长度还是10,数组元素初始化的部分是1 2 3 4,没有初始化的部分是0;

我们再来看第二个程序

这里我们没有在数组里定义他的大小,直接初始化元素,这时候数组长度为3,元素为1 2 3.


由此我们可以得到这样的一个结论


当数组创建时,定义了长度多长,数组的长度就是多长,当我们一旦初始化数组元素,未初始化的元素默认为0;但是当我们没有初始化数组,数组元素为随机值。


如果我们没有定义长度,那么我们初始化的元素个数就是数组的长度。


(大家可以自行测试一下)

1.3数组的引用

关于数组的引用需要注意的一点:

只能引用数组的某一元素,不能一次整体调用数组的全部元素。


1.3.1下标引用操作符  []

我们引用数组的时候需要用到下标引用操作符  []

我们要知道数组的下标是从0开始的


比如 这个数组有五个元素,那么第一个元素要引用出来就是arr[0],以此类推,所以我们要找哪个元素就去找其对应的下标就行。

int arr[5] = {1,2,3,4,5}
//            0 1 2 3 4
int a = arr[0];


大家肯定有这个疑问,我们在定义数组的  []   和引用元素的   []  是一样的吗?


很显然不是


int arr[10];    这个是定义数组,所以[]表示的是数组元素的个数;


a = arr[5];    这个是引用数组元素,表示的是引用arr数组中下标为5的元素。


他们俩的最大区别就是有无数据类型。

1.4一维数组在内存中的存储

我们现在了解了数组的创建,初始化和引用。那么数组在内存中是怎样存储的呢?数组每个元素的地址是怎样变化的呢?

看下图

我们可以看到数组的五个元素在内存中的地址是逐渐增加4的


我们这里只需要知道数组在内存中是连续存放的,并且随着数组下标的增大,地址也有规律的变大。

关于sizeof()和strlen我们会专门在一期博客给大家解答。

相关文章
|
7月前
从一个数组中拿到另一个数组中的值
从一个数组中拿到另一个数组中的值
为数组 arr 中的每个元素求二次方。不要直接修改数组 arr,结果返回新的数组
为数组 arr 中的每个元素求二次方。不要直接修改数组 arr,结果返回新的数组
|
7月前
用几种方法输出二维数组各元素的值。
用几种方法输出二维数组各元素的值。
100 4
定义一个包含10个整数元素的数组,初始值由用户给定。找出数组中的最大数并连同下标一起输出。
定义一个包含10个整数元素的数组,初始值由用户给定。找出数组中的最大数并连同下标一起输出。
235 0
|
C语言
C语言中二维数组a[3][4]行列元素互换,存到另一个数组中。
C语言中二维数组a[3][4]行列元素互换,存到另一个数组中。
263 0
数组与矩阵——3.数组中重复的数字
数组与矩阵——3.数组中重复的数字
有一个整数数组,长度为9,数组里的值是多少不清楚,但是知道数组中有8个值是相等,其中一个小于其他8个值,目前有一个标准函数,compare(int[] a, int[] b),返回0相等1大于
有一个整数数组,长度为9,数组里的值是多少不清楚,但是知道数组中有8个值是相等,其中一个小于其他8个值,目前有一个标准函数,compare(int[] a, int[] b),返回0相等1大于
122 5
写一个函数打印数组arr数组的内容,不使用数组下标,使用指针 arr是一个整型一维数组
写一个函数打印数组arr数组的内容,不使用数组下标,使用指针 arr是一个整型一维数组
119 0
写一个函数打印数组arr数组的内容,不使用数组下标,使用指针 arr是一个整型一维数组
|
人工智能
char类型数组赋值整数,求数组长度
char类型数组赋值整数,求数组长度
140 0
|
Java
Java经典编程习题100例:第14例:定义一个int型的一维数组,包含10个元素,分别赋一些随机整数,然后求出所有元素的最大值, 最小值,平均值,和值,并输出出来
Java经典编程习题100例:第14例:定义一个int型的一维数组,包含10个元素,分别赋一些随机整数,然后求出所有元素的最大值, 最小值,平均值,和值,并输出出来
342 0