新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
第一节 C 语言基础以及基本数据类型
第二节 C 语言运算符
第三节 C 语言控制语句
第四节 C 语言自定义函数
第五节 C 语言修饰变量的关键字
第六节 C 语言构造数据类型–数组
第七节 C 语言字符串
数组------ 存放同种类型的数据,下标标从0开始算。
学数组:1、能够开辟合适的空间进行数据的存储
2、能够对数组中的数据进行读写操作
----- 计算班级的平均分? ----- 分数(浮点型) 多个浮点型的数据放在一起,然后按照顺序排序,
[92, 98.5 , 90 ,56,78,92]
0 1 2 3 4 5
如果我想获取它的每一个标号 0~5 的每一个数
for 循环
2.数组赋值,访问数组定义:数组里面是存放数据对的,数据在数组里面统称为元素。
定义格式: 元素的数据类型 数组名[个数]
int arr[5];
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]:相应空间的地址。
3.数组初始化数组元素赋值操作
元素的访问 – 下标 - - 0 ~ 元素个数-1 – 使用下标的时候不能越界
元素的空间 – 数组名[下标] 数组名[下标] = 20;
元素的地址:&数组名[下标] scanf(“格式控制符”,&数组名[下标]);
数组初始化:初始化就是有几个空间就对多少空间进行写操作。 — 所有的空间进行赋值操作。
初始化的时候赋值符号左侧 是数组的定义 要注意元素的个数。
赋值符号的右侧是每一个空间的值,写的时候使用{}把这些值包含起来,值和值之间使用, 分割。
元素的数据类型 数组名[元素个数] = {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 组数据,每一组数据都是 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)
在定义的时候对所有的空间进行赋值操作。
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);
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧