c++ 数组置0_鸣小亮C语言笔记(5)——数组
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)里讨论咨询。
c++ 数组置0_鸣小亮C语言笔记(5)——数组相关推荐
- 8086怎么输出数组_鸣小亮C语言笔记(5)——数组
Hi,技术菌团里刚学数组的小伙伴们,你们数组的基础知识掌握的怎么样呢,本期的数组语言笔记能不能帮到你们呢?数组是一组有序数据的集合.数组中每一个元素都属于同一个数据类型,且不能把不同类型的数据放在同一 ...
- 微信小程序js数组初始化_微信小程序学习Course 3-2 JS数组对象学习
微信小程序学习Course 3-2 JS数组对象学习 本节主要介绍JS中的数组. 3-2.1 数组的声明 数组声明的方式多种,如下例.一般我们可以先创建一个空数组,然后再填充. var names = ...
- c语言设计程序之数组,软考程序员考点C语言程序设计之数组
下面希赛小编为大家整理的软考程序员考点C语言程序设计之数组,希望能帮助学友们.具体内容如下: 数组 所谓数组,就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后 ...
- c语言笔记之数组和指针(初学者)
数组 定义 由数据类型相同的一系列元素组成 size_t arr[index]={ } *当{}内列出元素的值,可以让编译器自己数出数组大小,此时index可省略不写.数组的长度可以用(sizeof ...
- c#数组赋初值_【自学C#】|| 笔记 13 数组
上一章最后讲的是正则表达式做一下总结. 总之就是通过"/d"这样的符号代替数字或字符什么的,然后通过"{n}"这种方式确定重复多少个,再通过"|&qu ...
- C语言笔记(数组地址一些细节)
一.数组的a+1和&a+1的区别 先看看测试代码: 1 int data[10]={}; 2 printf(" sizeof(data) = %d.\n", sizeof ...
- c语言二维数组判断几行几列,C语言 二维数组的行列区别
#include #include /*=============================================================*/ int main() { int ...
- c语言中数组结尾的0的作用,C语言里面一个数组最后的\0表示什么意思?
qq_莫非 #include #include #include #include #include #include #include #include #include #define PORT ...
- C语言 指针和数组区别 - C语言零基础入门教程
目录 一.前言 二.指针和数组区别 1.通过 sizeof 获取大小 a.计算数组大小 b.计算指针大小 2.指针和数组赋值方式不同 a.指针赋值 b.数组赋值 3.指针是指针变量,数组是指针常量 三 ...
最新文章
- Python基础三--字典,集合,编码,深浅copy,元祖、文件操作
- python编写Mysql自动备份脚本
- 注意事项:二、sqlserver2008服务配置
- CSDN markdown 如何更改文字字体、样式、颜色、大小?
- 2021-10-20 Speaking Class
- nvcc fatal : Unsupported gpu architecture 'compute_11'
- SAP UI5 formatter的原理和调试截图-当UI字段没有值显示时怎么办
- 《机器学习概论》习题答案
- 前端学习(2649):vue3.0的处理展示
- linux 文件的组织,Linux文件组织和目录结构
- 即时通讯应用战争开打,到底谁能最终定义我们的交流方式?
- Gopher一定要会的代码自动化检查
- Span中显示内容过长显示省略号---SpringCloud Alibaba_若依微服务框架改造_前端基于Vue的ElementUI---工作笔记011
- treewidget怎么设置某一个item拖动的_如何零基础撸一个专车小程序?看这一文就够了!...
- STC12LE5620AD RAM问题
- 经典的HTML5游戏及其源码分析
- 【转】WinRAR软件许可框
- POSTGRESQL 设置hugepage 可以让系统使用内存更有效率,防止OOM
- 辰信领创荣获“2016中国IT风云榜”两项大奖
- 数据库实践LAB大纲 02 检索