Hi,技术菌团里刚学数组的小伙伴们,你们数组的基础知识掌握的怎么样呢,本期的数组语言笔记能不能帮到你们呢?数组是一组有序数据的集合。数组中每一个元素都属于同一个数据类型,且不能把不同类型的数据放在同一个数组中。01一维数组

一维数组它的元素只需要用数组名加一个下标,就能唯一确定。

定义一维数组的一般形式为:类型说明符 数组名【常量表达式】

例如:

int a[10];

表示定义了一个整型数组,数组名为a,此数组包含十个整型元素;而且要注意,该数组下标是从0开始的,这10个元素a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9]。上面的定义呢,就不存在数组元素a[10]。

那么数组名命名规则是什么呢?
其实数组名的命名规则和变量名相同,都遵循标识符命名规则。

数组的定义需要注意什么?
常量表达式可以包括常量和符号常量,例如:

int a[6+8];

该行代码就是合法的。
但需要注意的是不能包含变量。

例如:int a[n]; 这是不合法的。

还有就是,C语言不允许对数组的大小作动态定义,也就是说数组的大小不依赖于程序运行过程中变量的值。

例如:

int n;scanf("%d",&n);int a[n];

上述定义数组的代码是不对的,初学者一定不要犯这样的错误

在定义数组并对其赋值后,就可以引用数组的元素了。
引用数组元素形式如下:数组名【下标】
例如:

int a[10];             //前面有int,这是定义数组,指定数组包含十个元素t=a[6];        //这里的a[6]表示引用a数组中序号为6的元素

为了使程序简洁,常在定义数组的同时给元素赋值,这称为元素的初始化。1. 在定义数组时对全部数组元素赋予数值。例如:

int a[10]={0,1,2,3,4,5,6,7,8,9};

将各元素初值放在一对花括号里,数据间用逗号分隔。2. 可以只给数组一部分元素赋值。例如:

int a[10]={0,1,2,3,4}

上述表示只给前面5个元素赋初值,系统自动给后5个元素赋初值为0.3. 如果使一个数组中的全部元素值为0,可以写成:

int a[10]={0,0,0,0,0,0,0,0,0,0}或int a[10]={0};

4. 对全部元素赋初值时,由于数据的个数已经确定,所以可以不指定数组长度。

例如:

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

02二维元素

二维元素常称为矩阵。

二维数组定义的一般形式:类型说明符 数组名【常量表达式】【常量表达式】
二维数组基本概念与方法和一维数组相似。

二维数组元素的表达形式为:数组名【下标】【下标】

例如,a[2][3] 表示a数组中序号为2的行中序号为3的列的元素。
数组元素可以出现在表达式中,也可以被赋值。

例如

b[1][2]=a[2][3]/2

但要注意的是,在引用数组时,下标值应在已定义的数组大小的范围内。

例如:

int a[3][4];           //定义a为3x4的二维数组……a[3][4]=3;             //不存在a[3][4]元素

在上述定义中,数组a可用的行下标范围在0 ~ 2,列下标范围在0 ~ 3,用a[3][4]表示元素显然超过了数组的范围。

1. 分行给二维数组赋初值。

例如:

int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

2. 可以将所有元素都写在一个花括号里,按数组元素在内存里的排列顺序对各元素赋初值。

例如:

int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};

但该方法和第一种比起来,写起来容易遗漏也不好检查。3. 可以对部分元素赋初值。

例如:

int a[3][4]={{1},{5},{9}};

他的作用只是对各行的第一列(即序号为0的列)的元素赋初值,其余元素自动为0。
也可以对各行的某一元素赋初值,

例如:

int a[3][4]={{1},{0,6},{0,0,11}};

初始化的元素如下:
1 0 0 0
0 6 0 0
0 0 11 0
当然了,也可以对某几行元素赋值:

int a[3][4]={{1},{5,6}};

数组元素为:
1 0 0 0
5 6 0 0
0 0 11 04. 如果对全部元素都赋初值,则定义数组时对第一维长度可以不指定,但第二维长度不能省。

例如:

int a[3][4]={{1},{5,6}};

与下面的定义等价

int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12};

03字符数组

C语言中没有字符串类型,也没有字符串变量,字符串是存放在字符型数组中的。

用来存放字符数据的数组是字符数组。在字符数组中一个元素内存放一个字符。

例如:

char c[10];c[0]='I';c[1]=' ';c[2]='a';c[3]='m';c[4]='';c[5]='h';c[6]='a';c[7]='p';c[8]='p';c[9]='y';

由于字符型数据是以整型形式(ASCII代码)存放的,因此也可以用整型数组来存放字符数据。

例如:

int a[10];c[0]='a';

对字符数组初始化,把各个字符依次赋给数组中各元素。

例如:

char c[10]={'I',' ','a','m',' ','h','a','p','p','y'};

1. 逐个字符输入输出。用格式符“%d”输入或输出一个字符。

例如:

char str[6];int i;for(i=0;i<6;i++)        scanf("%c",&str[i]);           //字符数组输入for(i=0;i<6;i++)        printf("%c",str[i]);           //字符数组输出

2. 将整个字符串一次输入或输出,用“%s”格式符。

例如:

char str[6];scanf("%s",str);               //字符串输入printf("%s",str);              //字符串输出

由于字符数组名表示的就是数组的首地址,所以以%s的格式输入输出一个字符串时,字符数组名前面不能再取地址符号“&”。

本期语言笔记到这里就结束了,我们下期见!如果有疑问可以在技术菌团官方QQ群(655575022)里讨论咨询。

8086怎么输出数组_鸣小亮C语言笔记(5)——数组相关推荐

  1. c++ 数组置0_鸣小亮C语言笔记(5)——数组

    Hi,技术菌团里刚学数组的小伙伴们,你们数组的基础知识掌握的怎么样呢,本期的数组语言笔记能不能帮到你们呢?数组是一组有序数据的集合.数组中每一个元素都属于同一个数据类型,且不能把不同类型的数据放在同一 ...

  2. 微信小程序修改数组中的元素_微信小程序——this.setData()动态修改数组中的某一值...

    微信小程序--this.setData()动态修改数组中的某一值S8v编程技术_踩坑日志_进阶指南_无知人生 大家是不是都觉得微信小程序的开发方式和 vue react 这种框架的开发方式很像?S8v ...

  3. 微信小程序js数组初始化_微信小程序学习Course 3-2 JS数组对象学习

    微信小程序学习Course 3-2 JS数组对象学习 本节主要介绍JS中的数组. 3-2.1 数组的声明 数组声明的方式多种,如下例.一般我们可以先创建一个空数组,然后再填充. var names = ...

  4. .net 遍历数组找重复值写入一个新数组_第二轮 Python 刷题笔记一:数组

    经过四十多天缓慢的刷题,现在进度大概是刷了八十多道 LeetCode 题,最近也在吸取过来人的经验,仍然需要对刷题计划进行调整. 首先明确一下目标,我是有些 Python 基础,想通过刷题掌握更多算法 ...

  5. c语言二维数组对角线输出字符,输出二维数组对角线上的数 c语言 二维数组 对角线相加...

    1.编写程序,把下面的数据输入到一个二维数组中: 25 36 78 13 12 26 8我自己编的,用VISUAL C++6.0 测试过了 #include"stdio.h" vo ...

  6. vue 数组中嵌套数组_来,一起聊聊Excel中的数组

    有人说数组是Excel函数的精华,也有人说数组是Excel函数的糟粕,男说男有理女说女有爱,各有各的理由--所以王源说世间没有真正的感同身受.但不管怎么说吧,数组作为Excel函数进阶后的知识,是相当 ...

  7. go 声明二维数组_一篇文章了解Go语言中数组Arrays的使用内幕

    概述 与其他编程语言类似,Go语言也有数组array.Go语言中,数组的行为和其他语言没有什么不同.Go语言中还有一个叫做切片slice的东西,它就像是对数组的引用.在本文中,我们将只研究数组. 定义 ...

  8. python生成一个数组_在for循环中创建多个数组(Python)

    我目前遇到Numpy阵列的问题.如果在其他地方已经提出这个问题,我道歉,但我觉得我到处都是. 我最初的问题是我试图创建一个数组并用多组不同大小的站数据填充它.由于我无法使用大小不同的数据集填充相同的数 ...

  9. object转换为数组_从V8源码分析一个JS 数组的内存占用问题

    前段时间,在排查一个问题的时候,遇到了一个有点令人困惑的情况,有下面这两段代码: const a = new Array(99999);a[99998] = undefined; const b = ...

最新文章

  1. TCP协议的服务器与客户端的程序设计(代码注释超详细)
  2. 快速排序(过程图解 参考啊哈算法)
  3. 攻防比赛_2020年度泉州市大学生网络安全攻防比赛在黎明职业大学圆满落幕
  4. 玩转算法第七章-二叉树与递归
  5. linux usb mic延时大如何解决,Linux 中 SSH 客户端登录缓慢的解决办法
  6. 【转】el-cascade设置默认值遇到的坑!
  7. navision系统和sap区别_MES与EPR进行系统集成的实际案例-系统接口、交互数据分析...
  8. u盘写保护,无法格式化
  9. 引入的噪声程度:曝光时间,模拟增益,数字增益的不同
  10. 小张的个人信息管理系统
  11. 编程术语晦涩_晦涩的编程语言的乐趣
  12. OpenAI注册(ChatGPT)
  13. linux添加五笔输入法,RedHat Linux 9中vim升级方法及如何安装五笔输入法
  14. 【原】计算机Tools vs 学习资料
  15. IELTS writing skills——学习笔记
  16. 矩阵模板 51nod 算法马拉松分解问题
  17. 长沙最牛逼的互联网公司都在这里了
  18. JSON格式数据示例操作
  19. EmbedTLS + Eclipse C/C++测试用例SSL客户端和服务器
  20. 未分配利润与利润表不一致_资产负债表未分配利润与利润表不一致怎么处理?...

热门文章

  1. 7-139 手机话费 (10 分)
  2. uboot-链接脚本(u-boot.lds)
  3. 认识SOAR-安全事件编排自动化响应
  4. ubuntu物理机用virtualbox安装win7进行单片机实验
  5. Qt利用avilib实现录屏功能,生成avi文件
  6. 西瓜皮18.6.27
  7. 解决error: unknown type name ‘__u8’问题,认识__u8,__u16,__u32,__u64的大小及作用
  8. discuz mysql查询_Discuz!X/数据库 DB:: 函数操作方法
  9. cvc-complex-type.2.4.a: 发现了以元素 ‘base-extension‘ 开头的无效内容。应以 ‘{layoutlib}‘ 之一开头
  10. 多线程threading模块用法 -《狗嗨默示录》-