一、数组
一组相同类型的数据的集合
int score1;
int score2;
int score3;
int scoreN; //40
一次性定义多个变量? //本质上是 相同类型变量的集合
分为:
一维数组
二维数组
整型
字符型
---------------------
语法: //定义一个数组
类型说明符 数组名[常量表达式];
(1).类型说明符
整型 int,short,long ,long long
浮点 float double
字符 char 这些都是基本数据类型
(2).数组名
代表着 数据集合 (内存空间的一个名字)
数据类型角度
1. a代表整个数组类型
2. a代表一个值 --数组首元素的地址
(3).[ ] //表示此时定义的是一个 数组
(4).常量表达式
表示数组的长度 --- 变量的个数
eg:
int array[5]; //定义一个数组,这个数组放了5个 int型变量
int array[40];
数组本身也是一种数据类型
类型:
常量
变量
变量的定义:
数据类型 变量名;
int a = 10; //a int型
int a[10]; //a所代表的类型 是 int[10]
int [10] a; //a所代表的类型 int[10]
//a数组名 标识符
//a ---把名字去掉 ,剩下的就是名字对应的数据类型
int a[10]; //数组在内存空间上的特点
//数组的给值
//初始化
//赋值
int a[10] = {1,2,3,4,5,6,7,8,9,10}; //{} //表示初始化 --初始化器
//全部初始化
数组元素的访问
语法:
a[下标]; //0 开始的
//1
数组下标:
本质上是 偏移量
数组的特点:
1.连续性 --一片连续空间
2.有序性 --元素依次存储
3.单一性 --单一类型的元素
a[i] //下标运算 ---本质 实际是一个地址的运算
下标本质上一个偏移量
a[0]
a[1]
a[i]
a[i]<=>i[a] // 意思一样
数组的越界问题:
1.不是语法问题 --- 编译器不报错
2.程序员 自己小心
a[-5]
总结:
1.数组概念
数组 一组相同类型数据(变量)的集合
2.语法
数据类型 数组名[数组长度];
3.定义
int a[10];
连续性
有序性
单一性
4.注意
a.数组名
代表的数据类型 --数组类型 int a[10]; //a所代表的类型为int[10] //数组类型
代表的值 --数组首元素的地址 // &a[0]
b.数组长度 与 下标
数组长度 --表示几个元素(变量)
下标 --偏移量
[0~数组长度-1]
int a[10];
[0~9]
5.数组的初始化
int a[10] = {1,2,3,4,5,6,7,8,9,10}; //全部初始化
int a[10] = {1,2,3,4,5}; //部分初始化--依次给到数组元素 ,没有给值的元素,默认初始化为0
将数组初始化为0
int a[10] = {}; //都初始化为0
int a[10] = {0}; //都初始化为0
数组不初始化 ---数组中为垃圾值
6.数组长度可以省略
有前提 --必须要有初始化的值
int a[] = {1,2,3}; //编译器会通过值来计算机 数组长度
数组的赋值? //整体赋值?
注意:
数组赋值
不能整体赋值
数组赋值,需要一个元素一个元素个给到