170-学习C数组

数组的定义和初始化

数组是包含给定类型的一组数据,并将这些数据依次存储在连续的内存空间中。每个独立的数据被称为数组的元素。元素的类型可以是任意类型。数组本身也是一个结构,其类型由它的元素类型延伸而来。更具体地说,数组的类型由元素的类型和数量决定。如果一个数组的元素是T类型,那么该数组就称为“T数组”。例如:如果元素类型为int,那么该数组的类型就是“int数组”。然而,int数组类型是不完整的类型,除非指定了数组元素的数量。如果一个int数组有16个元素,那么它就是一个完整的对象类型,即“16个int元素数组”

一维数组的定义和初始化
数组的定义决定了数组名、元素类型以及元素个数
其语法如下:
<类型> 数组[<元素数量>];
元素数量在方括号([])之间,它必须是大于0的整数常量表达式。
在这里插入图片描述

#include<stdio.h>

int arr[5];//全局变量,均初始化为0

int main()
{
    
    
	int brr[5];
	for(int i=0;i<5;++i)
	{
    
    
		printf("%d ",brr[i]);//局部变量未定义打印出随机值

	}
	printf("\n");
	for(int i=0;i<5;++i)
	{
    
    
		printf("%d ",arr[i]);
	}

	return 0;
}

在这里插入图片描述
在这里插入图片描述
下列做法错误
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
总结:C中数组大小在编译时确定,编译系统按照定义为数组分配一段连续的存储单元,这段单元的大小也是不能改变的,依次数组的大小不能用变量定义,而只能是一个正整数常量。

在C99标准中,定义数组的< 元素数量>可以是变量,多维数组也一样。
如int ar[n]; int aar[n] [m];n和m都可以是变量。VS编译器不支持C99标准

数值在内存的表
在这里插入图片描述
一维数组的使用
数组在存储单元中是顺序连续存放的,任何一个元素都可以单独访问,其标识方法是用数组名和下标;
数组名[整型表达式];整型表达式可以是变量,也可以是常量,但必须是整型类型。

在这里插入图片描述
在这里插入图片描述
必须for循环一个一个赋值

其他类型的数组
在这里插入图片描述
一维数组的应用举例
查表法是将一些事先计算好的结果,存储在常量数组中,用到是直接按下标取数据,以节省运行时的计算时间。是以空间换时间。

在这里插入图片描述
在这里插入图片描述
改进算法
在这里插入图片描述

二维数组

二维数组的定义

类型名 数组名[行表达式][列表达式];行与列用常量表达式

在这里插入图片描述
二维数组的逻辑和物理(内存)表示
在这里插入图片描述
一个二维数组,在本质上是有多个一维数组构成(每个一维数的大小必须相同)
如:定义int ar[3][4]的二维数组,它是由3个一维数组组成,每个一维数组的大小是4个整型元素。

可以只对部分元素赋值,未赋值的元素自动取0值(如图所示:是按行优先存储)
在这里插入图片描述
如果对二维数组的初始化,那么第一维的长度可以缺省,第二维不可缺省
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
二维数组的使用
二维数组中的元素是通过使用下标(即数组的行索引和列索引)来访问的
在这里插入图片描述
C语言中的多维数组基本的定义是以数组作为元素构成的数组,二维数组的数组元素是一维数组,三维数组的数组元素是一个二维数组,以此类推,也就是说,多维数组用的是一个嵌套的定义。

数组与函数

一维数组作为函数的实参
在这里插入图片描述
二维数组作为函数的实参
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/LINZEYU666/article/details/113628517
今日推荐