C语言入门系列-构造数据类型--数组-创新互联

C语言入门系列 - C语言字符串

第一节 C 语言基础以及基本数据类型
第二节 C 语言运算符
第三节 C 语言控制语句
第四节 C 语言自定义函数
第五节 C 语言修饰变量的关键字
第六节 C 语言构造数据类型–数组
第七节 C 语言字符串

10余年建站经验, 成都做网站、网站建设客户的见证与正确选择。创新互联提供完善的营销型网页建站明细报价表。后期开发更加便捷高效,我们致力于追求更美、更快、更规范。

数组
  • C语言入门系列 - C语言字符串
  • 数组
  • 一、一维数组
    • 1.数组定义
    • 2.数组赋值,访问
    • 3.数组初始化
    • 4.获取数组的个数
  • 二维数组
    • 1.二维数组定义
    • 2.二维数组的赋值
    • 3.二维数组初始化
    • 4.二维数组的访问操作
  • 总结


数组

数组------ 存放同种类型的数据,下标标从0开始算。


一、一维数组

学数组:1、能够开辟合适的空间进行数据的存储
    2、能够对数组中的数据进行读写操作
----- 计算班级的平均分? ----- 分数(浮点型) 多个浮点型的数据放在一起,然后按照顺序排序,
[92, 98.5 , 90 ,56,78,92]
0  1  2 3 4 5
如果我想获取它的每一个标号 0~5 的每一个数
for 循环

1.数组定义

数组定义:数组里面是存放数据对的,数据在数组里面统称为元素。
定义格式: 元素的数据类型 数组名[个数]
           int arr[5];

2.数组赋值,访问
1、数组里面元素单独赋值
数组里面的元素是按照顺序进行存储的,为了区分每一个元素,数组会为每一个元素分配一个编号,
编号从 0 开始,编号依次+1 进行增长。
	arr[0] = 0;
	arr[3] = 3;

2、通过循环遍历数组并赋值
	for(i=0;i<5;i++) 
	{// nums[i] = 70; // 让用户定义空间里面存放什么
		scanf(“%d”,&nums[i]); 	//&取得相应数组空间的地址
	}
3、元素访问 -- 下标方式	arr[i]:相应空间的数据
	int num;
	num = arr[0]; 
总结: 定义数组的时候[]里面存放的个数,有了空间在进行读写操作。 
(编号)下标是 从 0 开始到个数- 1,编号超过了下标的界限,数据不会正确存储。
arr[i]:相应空间的数据。 &arr[i]:相应空间的地址。

数组元素赋值操作
元素的访问 – 下标 - - 0 ~ 元素个数-1 – 使用下标的时候不能越界
元素的空间 – 数组名[下标]    数组名[下标] = 20;
元素的地址:&数组名[下标]  scanf(“格式控制符”,&数组名[下标]);

3.数组初始化

数组初始化:初始化就是有几个空间就对多少空间进行写操作。 — 所有的空间进行赋值操作。
初始化的时候赋值符号左侧 是数组的定义 要注意元素的个数。
     赋值符号的右侧是每一个空间的值,写的时候使用{}把这些值包含起来,值和值之间使用, 分割。
      元素的数据类型 数组名[元素个数] = {x,y…};

注意点: 数组只能在初始化整体赋值。不可以先定义好了,在整体赋值。

1、数组只能在初始化整体赋值。 在定义的时候直接使用赋值符号 
short nums[4] = {30,40,50,60}; 
2、书写的时候注意下标 
short nums[4] = {30,40,50,60,70}; // 空间不够的时候 70 会丢失 
3、{}里面的元素个数可以<=你在定义的时候写的元素个数 
short nums[4] = {30,40}; 
// 当{}里面的元素个数< 定义的时候写的元素个数 ,没有值的空间会被初 始化为 0; 
4、 数组在初始化的时候可以省略元素个数 
short nums[] = {30,40,50,60}; 
// 如果初始化的时候省略元素个数的书写,那么会按照后面{}里面的数据个数来开辟空间。
4.获取数组的个数

数组元素的访问 :元素访问 – 下标方式.冒泡排序算法
数组元素在内存里面的存储:是连续排列的。还有地址:数组变量名 == &数组变量名[0]
short nums[] = {1,2,3,4};
//nums[0] nums[1] nums[2] nums[3] == short ----2个字节
//nums == short [4](数组声明去掉数组名就是数组类型) ----8个字节
//sizeof(数据类型 或者 空间名字)
//表达这个数组中有多少个元素: sizeof(nums) / sizeof(nums[0])

1、数组只能在初始化整体赋值。 在定义的时候直接使用赋值符号 
short nums[4] = {30,40,50,60}; 
2、书写的时候注意下标 
short nums[4] = {30,40,50,60,70}; // 空间不够的时候 70 会丢失 
3、{}里面的元素个数可以<=你在定义的时候写的元素个数 
short nums[4] = {30,40}; 
// 当{}里面的元素个数< 定义的时候写的元素个数 ,没有值的空间会被初 始化为 0; 
4、 数组在初始化的时候可以省略元素个数 
short nums[] = {30,40,50,60}; 
// 如果初始化的时候省略元素个数的书写,那么会按照后面{}里面的数据个数来开辟空间。
二维数组 1.二维数组定义

一维数组:数组里面存放的数据是基本类型数据或者结构体 等不可再分单元。
二维数组:里面存放的数据是数组,一个二维数组里面有多个一位数组组成,二维数组也是一个数组,因此需要保证里面的一维数组具有共同的数据类型。

二维数组定义个数: 存放的数据类型 数组名[元素个数][每个元素里面的数据个数];
        short arr[3][4] = {{10,20,30,40},{50,60,70 ,80},{90,100,110,120}};
arr 里面有 3 个元素,每个元素都是 short [4]类型,每一个原有 4 个 short 数据组成。

2.二维数组的赋值

多位数组必须拿到最小的单元才能进行赋值操作
    2 组数据,每一组数据都是 3 个 int 型的数据
    int nums[2][3];  // 2 个元素 下标 0 1
            nums[0] nums[1] ---- int [3]
//---------nums[0] = {10,20,30}; 写法是错误的不能在定义数组之后,使用赋值符号对数组整体的赋值。

一般都是使用循环输入,二维数组就采用双层循环

int nums[2][3];
	int i,j;
	for(i=0;i<2;i++)
	{for(j=0;j<3;j++)
		{	// 输入: nums[i][j] -- &nums[i][j]
			scanf(“%d”,&nums[i][j]);
		}
	}

数组元素个数:  sizeof(nums) / sizeof(int [3]) sizeof(nums) / sizeof(nums[0])
每一个元素中数据的个数: sizeof(nums[0]) / sizeof(int)

3.二维数组初始化

在定义的时候对所有的空间进行赋值操作。
int nums[2][3] = {{2,3,4},{5,6,7}};

注意事项

1. 初始化的时候,数据的个数可以小于定义的数据个数。没有值的空间补 0
int nums[2][3] = {{1},{1,2}}; // {{1,0,0},{1,2,0}}
2. 初始化的时候,可以将里面元素的{}取消掉
int nums[2][3] = {1,2,3,4,5}; // {1,2,3,4,5,0} 会按照数据的个数进行分组 {{1,2,3},{4,5,0}};
3. 二维数组初始化的时候,可以省略元素个数,但是不能省略数据个数
int nums[][3] = {1,2,3,4}; 会按照数据的个数进行分组, 不足的补 0 {{1,2,3},{4,0,0}}
4.二维数组的访问操作

使用:求二维数组里面的大值。
int nums[2][3] = {{21,39,4},{50,6,7}};

int nums[2][3] = {{21,39,4},{50,6,7}};
	int i,j;
	int max = nums[0][0];
	for(i=0;i<2;i++)
	{for(j=0;j<3;j++)
		{	if(max< nums[i][j])
			{		max = nums[i][j];
			}
		}
	}
	printf(“%d”,max);

总结
  1. 数组的类型就是除了数组名剩下的部分
  2. 求数组所占的总的字节数 sizeof(数组名) 或者sizeof(short [4])
  3. 求数组的个数。     sizeof(数组名) / sizeof(数组名[0])

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


网站栏目:C语言入门系列-构造数据类型--数组-创新互联
文章链接:http://myzitong.com/article/djcpip.html