周游C语言教程9 - 数组

这是周游C语言的第九篇教程,你将在这篇文章里认识数组。

数组

数组就是一组相同的数的集合,数组的声明并不是声明一个个单独的变量,比如a0、a1、…、a99,而是声明一个数组变量,比如 a,然后使用 a[0]、a[1]、…、a[99] 来代表一个个单独的变量。

数组在内存中是连续的。

第一个元素 第二个元素 第三个元素 最后一个元素
a[0] a[1] a[2] a[99]

声明数组

在声明数组时需要定义数据类型,数组名称和数组大小,数组大小需要用方括号包裹

数据类型 数组名称[数组大小];

比如有5框苹果,我们就可以声明成

int apple[5];

数组初始化

数组可以使用以下方式进行初始化

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

这样就将apple这个数组的每个成员都单独进行了赋值

apple[0] apple[1] apple[2] apple[3] apple[4]
1 2 3 4 5

单独进行赋值的时候可以将数组长度省略,这样编译器将会自动把给数组计算长度

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

访问数组

数组名[索引号]的形式可以访问数组,索引号需要从0开始。比如apple[0]表示apple数组的第一个元素。
下列代码将计算苹果的总数,并将苹果平分给每个框

#include <stdio.h>int main()
{int apple[5] = { 1,2,3,4,5 };int i = 0;int total = 0;for (i = 0; i < 5; i++){total += apple[i];}printf("一共有%d个苹果\n", total);for (i = 0; i < 5; i++){apple[i] = total / 5;printf("第%d个框现在有%d个苹果\n", i+1, apple[i]);}
}

多维数组

C语言支持多维数组,其声明形式如下

数据类型 数组名称[第一维长度size1][第二维长度size2][...][第n维长度sizen];

多维数组一共包含了size1size2…*sizen个变量。

int apple[3][5][4];

以上声明表示一个3.5.4维的数组

二维数组

我们以最简单的二维数组为例,定义一个

int apple[3][5];

我们给它赋予一个现实意义,一共有3间房子,每间房子都有5框苹果。

第一筐 第二筐 第三筐 第四筐 第五筐
第一间房子 apple[0][0] apple[0][1] apple[0][2] apple[0][3] apple[0][4]
第二间房子 apple[1][0] apple[1][1] apple[1][2] apple[1][3] apple[1][4]
第三间房子 apple[2][0] apple[2][1] apple[2][2] apple[2][3] apple[2][4]

初始化二维数组

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

其中,花括号可以省略

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

访问二维数组

同样可以用数组名加索引号的方式进行访问。

int a = apple[1][3];

表示访问第2个房间第4筐(索引号从0开始)

#include <stdio.h>int main()
{int apple[3][5] = {{1,2,3,4,5},{3,2,1,4,5},{2,5,3,4,1}};int i, j = 0;int total = 0;for (i = 0; i < 3; i++){for (j = 0; j < 5; j++){total += apple[i][j];}}printf("一共有%d个苹果\n", total);for (i = 0; i < 3; i++){for (j = 0; j < 5; j++){apple[i][j] = total / 5 / 3;printf("第%d个房间第%d个筐现在有%d个苹果\n", i+1, j+1, apple[i][j]);}}
}

周游C语言教程9 - 数组相关推荐

  1. c语言定义数组6,C语言教程6数组.ppt

    C语言教程6数组.ppt #include main( ){ char name[13]; int i; for (i =0; i <=12; i ++)scanf(" %c" ...

  2. Rust语言教程(3) - 数组与向量

    Rust语言教程(3) - 数组与向量 上一节我们采摘了不少低矮的果实,将其它语言学到的知识迁移到Rust 中来.这一节我们仍然继续采摘. 在数据结构中,最经常使用的就是定长的数组和变长的向量. 数组 ...

  3. c语言指针数组课件,C语言指针与数组教程课件.ppt

    C语言指针与数组教程;教学要求;本章主要内容;引子;#include void swap ( int x, int y ) { printf("调用时:x地址为:%p, 值为:%d\n&qu ...

  4. C语言 指针和数组区别 - C语言零基础入门教程

    目录 一.前言 二.指针和数组区别 1.通过 sizeof 获取大小 a.计算数组大小 b.计算指针大小 2.指针和数组赋值方式不同 a.指针赋值 b.数组赋值 3.指针是指针变量,数组是指针常量 三 ...

  5. C语言 二维数组遍历 - C语言零基础入门教程

    目录 一.计算一维数组长度 二.计算二维数组长度 1.二维数组行数 2.二维数组列数 3.二维数组的元素个数 = 二维数组行数 * 二维数组列数 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C ...

  6. C语言 二维数组行数和列数计算 - C语言零基础入门教程

    目录 一.计算一维数组长度 二.计算二维数组长度 1.二维数组行数 2.二维数组列数 3.二维数组的元素个数 = 二维数组行数 * 二维数组列数 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C ...

  7. C语言 二维数组定义和使用 - C语言零基础入门教程

    目录 一.二维数组简介 二.定义二维数组并初始化 1.定义二维数组 2.初始化二维数组 三.访问二维数组 四.修改二维数组 五.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 & ...

  8. c语言程序设计5*5矩阵求出,实用C语言程序设计教程5数组和矩阵ppt221.ppt

    实用C语言程序设计教程5数组和矩阵ppt221 C语言程序设计 - 第5章 数组和矩阵 第5章 构造数据-- 数组和矩阵 本章教学目标 1.理解C语言中数组的本质及其在内存的存储结构 2.应用数组表示 ...

  9. 易语言教程数组删除成员和删除指定成员

    删除成员()表面看是一个简单的数组操作命令,其实有很多类型,必须删除指定成员,删除重复成员,删除多个指定成员,删除多个重复成员,一次性删除数组中重复的成员等等,所以本课叫录制了基础的删除成员和删除指定 ...

最新文章

  1. nginx 配置简介
  2. 可能是堆被损坏,这也说明 XX.exe 中或它所加载的任何 DLL 中有 bug
  3. c语言中闰年 日期 天数 统计出在某个特定的年份中,出现了多少次既是13号又是星期五的情形
  4. Java并发(四)——synchronized、volatile
  5. 《众妙之门——用户体验设计的秘密》一2.3 触摸至上的设计
  6. PUN☀️四、服务器大厅建房解析
  7. 戴尔linux恢复镜像,戴尔 SupportAssist OS Recovery 系统恢复教程
  8. 常见的API接口管理工具
  9. 简化的围棋棋子规则(C++实现)
  10. Linux系统之LVM(逻辑卷管理)
  11. html中屏幕文字轮播怎么做,如何制作网页滚动文字(html)(一)
  12. 亡命威龙评测:像城管一样开警车
  13. js基础笔记(持续更新)
  14. MSP430FR2433 LaunchPad板子energy trace技术测量电流电压
  15. 2021年N1叉车司机证考试及N1叉车司机模拟考试题库
  16. Robot Framework robot命令
  17. js出生日期转化年龄
  18. 实战大项目:模拟登录丁香园,并抓取论坛页面所有的人员基本信息与回复帖子内容----登录第一步
  19. WIN 8 安装PL2303驱动
  20. 历年高考高校录取分数线

热门文章

  1. matlab四维图形,matlab绘四维图
  2. asp.net开发wap程序必备:识别来访手机品牌型号 选择自 Qqwwee_Com 的 Blog
  3. [FFMPEG硬件加速]nvidia方案
  4. 练手项目1笔记 day02AnglaJS
  5. 内存测试软件苹果手机,苹果6内存问题,怎么查看iPhone6Plus的闪存内存类型(不用越狱)...
  6. Android程序设计之学生考勤管理系统
  7. 电商小程序可以实现什么功能_分享电商小程序的作用
  8. MAC iOS推送生产pem证书
  9. vr虚拟展馆3d展厅三维展示,数字化转型首选
  10. 【博学谷学习记录】超强总结,用心分享|大数据之GROUPING