【从零开始的 C 语言笔记】第十三篇-Array介绍与应用(1)

不怎么重要的前言

上一篇我们介绍了一个满好用的函式库,只要知道怎么使用math.h的很多函式,都可以在我们需要数学运算时帮上很大的忙。

今天我们来介绍一下Array吧!


Array是什么?

还记得第五篇我们有提到资料型态像是不同大小的盒子,而第六篇我们谈到变数就像被写上标籤的盒子,可以存放资料内容,等待我们需要的时候就能呼叫变数做任何处理。

那array又是什么样的概念呢?

array的中文翻译会叫他阵列,如果说变数是有特定大小(资料型态决定)的盒子,那array就像一栋拥有同样大小且叠再一起的盒子大楼,其中的每个盒子大小都是一致的,而各自的盒子(不同楼层)又可以存放不同的资料。

如下图这个样子:
http://img2.58codes.com/2024/20142565B84rf6VtDH.png

而array的index编号(可以想像成楼层编号)则是由0.1.2.3等持续往后编,所以如果阵列大小(总楼层数)是8,编上楼层的话会长这样:
http://img2.58codes.com/2024/20142565NDI7IFNBJ8.png

以下面这段程式码为例:

int arr[] = {1,2,3,4,5,6,7,8};

阵列arr的资料内容对应index(楼层编号)如下:
http://img2.58codes.com/2024/20142565D83Vtai36b.png


正式使用Array

我们前面大概介绍了阵列是什么东西,接下来我们来介绍一下怎么使用吧!

宣告一个阵列
阵列与变数一样,使用前都必须先宣告。

(1) 只给予阵列大小

int arr[10];

http://img2.58codes.com/2024/20142565IboAwESqf8.png

(2) 不给阵列大小,但直接赋值

int arr[] = {1,2,3,4,5,6,7,8};

http://img2.58codes.com/2024/20142565aCs8AUEnqX.png

(3) 给予阵列大小、赋值

int arr[5] = {1,2,3,4,5};
阵列的使用
搭配前面所提到的index概念,array的资料内容和变数一样,是可以自由使用、处理的。

(1) 阵列内的资料内容
http://img2.58codes.com/2024/20142565vOXbsYeOmm.png
如以下:

arr[2] = 777;

(2) 实际应用

#include <stdio.h>int main(){    int arr[]={1,2,3,4,5,6,7,8};    printf("data of arr\n\n");    printf("index 0: %d\n", arr[0]);    printf("index 1: %d\n", arr[1]);    printf("index 2: %d\n", arr[2]);    printf("index 3: %d\n", arr[3]);    printf("index 4: %d\n", arr[4]);    printf("index 5: %d\n", arr[5]);    printf("index 6: %d\n", arr[6]);    printf("index 7: %d\n", arr[7]);    printf("------\n\n");    arr[2] = 777;    printf("data of arr\n\n");    printf("index 0: %d\n", arr[0]);    printf("index 1: %d\n", arr[1]);    printf("index 2: %d\n", arr[2]);    printf("index 3: %d\n", arr[3]);    printf("index 4: %d\n", arr[4]);    printf("index 5: %d\n", arr[5]);    printf("index 6: %d\n", arr[6]);    printf("index 7: %d\n", arr[7]);    printf("------\n\n");    arr[2] = arr[2]-111;    printf("data of arr\n\n");    printf("index 0: %d\n", arr[0]);    printf("index 1: %d\n", arr[1]);    printf("index 2: %d\n", arr[2]);    printf("index 3: %d\n", arr[3]);    printf("index 4: %d\n", arr[4]);    printf("index 5: %d\n", arr[5]);    printf("index 6: %d\n", arr[6]);    printf("index 7: %d\n", arr[7]);    return 0;}

http://img2.58codes.com/2024/20142565hZIAaaOy0p.png

阵列与变数不同的地方

变数名称使用时会直接代表其资料内容,要找到变数地址时还需使用到「&」,但阵列名称所代表的并不是阵列的资料内容,而是阵列地址本身,所以当你想要printf array时,并不会依序列印出array的资料内容。

#include <stdio.h>int main(){    int data = 5;    int arr[] = {1,2,3,4,5};    printf("data: %d\n", data);    printf("address of data: %p\n", &data);    printf("arr : %p\n", arr);    return 0;}

http://img2.58codes.com/2024/20142565MRk7sH3OKZ.png


Array小结

宣告阵列时需同时宣告阵列大小或同时赋值(因为会自动分配阵列大小)
int arr[10];
int arr[]={1,2,3,4,5,6,7};
int arr[5]={1,2,3,4,5};

阵列的index由0开始依序往后
http://img2.58codes.com/2024/20142565K5aI30UxaS.png

使用阵列内的资料内容时须以特定格式

arr[2] = 777;

http://img2.58codes.com/2024/20142565Zfuvm6ihR1.png

并不能直接printf阵列名称,而印出整个阵列的资料内容,你会印出的只有阵列地址
#include <stdio.h>int main(){    int data = 5;    int arr[] = {1,2,3,4,5};    printf("data: %d\n", data);    printf("address of data: %p\n", &data);    printf("arr : %p\n", arr);    return 0;}

http://img2.58codes.com/2024/20142565xmu4kKnw3t.png


辛苦看到这里的你们,这样就大致介绍完array了,可以参考程式码自己测试看看,虽然不晓得这样的解释方式大家看不看得懂,但就尽力了QQ

下一篇稍微介绍一下array的延伸应用(应该算是啦?)!


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章