数组的基本用法:
数组的定义:
储存数据类型相同的一系列元素。
为什么需要数组?
为了解决大量同类型数据的存储和使用问题,为了模拟现实世界。
分类:
分为一维和二维以及多维。
一维数组:
定义:
为n个变量连续分配存储空间
格式: 类型 数组的名称 [数组元素的个数]
注意:
1.一维数组名不代表数组中所有的元素,一维数组名代表数组第一个元素的地址。
2. 数组的名称不代表数组,只有数组的名称[]才代表数组,a代表的是数组第一个元素的地址。
3. 所有的变量数据类型必须相同,所有变量所占的字节大小必须相等。
4.数组元素是从0开始的,如int a[5]中的五个 元素为 a[0],a[1]………a[4],没有a[5]。数组 第一个元素是从0开始的。
初始化:
完全初始化:
int a[5] = {1,2,3,4,5};
不完全初始化,未被初始化的元素自动为零
inta[5]={1,2,3};
不初始化,所有元素是垃圾值
int a[5] ;
清零
int a[5] = {0}
注意:
- 只有在定义数组的同时才可以整体赋值,其他情况下整体赋值都是错误的。
- 数组的输出可以通过for循环的方式实现。
二维数组:
例子:int a[3][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
总共是12个元素,可以当做3行4列看待,这12个元素的名字依次是
a[0][0] a[0][1] a[0][2] a[0][3]
a[1][0] a[1][1] a[1][2] a[1][3]
a[2][0] a[2][1] a[2][2] a[2][3]
a[i][j]表示第i+1行第 j+1列的元素
int a[m][n]; 该二维数组右下角位置的元素只能是a[m-1] [n-1]
二维数组可以看成是一个平面,int a[3][4]可以看成三行四列。
初始化:
与一维数组一致。
多维数组:
是否存在多维数组,不存在,因为内存是线性一维的,n维数组可以当做每个元素是n-1维数组的一维数组。
比如:
int a[3][4];
该数组是含有3个元素的一维数组
只不过每个元素都可以再分成4个小元素
int a[3][4] [5] ;
该数组是含有3个元素的一维数组
只不过每个元素都是4行5列的二维数组
# include <stdio.h>
/*
时间;2021年10月19日09点40分
目的;总结数组的用法
*/
int main (void) //数组分为一维数组,二维和多维。
{ /* 为什么我们需要数组?
为了解决大量同类型数据的存储和使用问题,为了模拟现实世界。
*/
//一维数组
//定义;为n个变量连续分配存储空间
//所有的变量数据类型必须相同
//所有变量所占的字节大小必须相等
int a[5]={1,2,3,4,5}; //a是数组的名字,5表示 数组元素的个数,并且这5个元素分别用a[0] a[1] .....a[4]
int i; //数组元素是从0开始的,int a[]定义该数组,而a[]代表第几项。
for (i=0; i<5; ++i); //a不代表数组,只有a[]才代表数组,a代表的是数组第一个元素的地址
printf("%d\n", a[i]);
//一维数组名不代表数组中所有的元素,
//一维数组名代表数组第一个元素的地址
printf("%d\n", a[100]);
/*
初始化;
完全初始化
int a[5] = {1,2,3, 4, 5};
不完全初始化,未被初始化的元素自动为零
inta[5]={1,2,3};
不初始化,所有元素是垃圾值
int a[5] ;
清零
int a[5] = {0}
错误的写法;
int a[5];
a[5] = {1,2,3, 4,5}; //错误
只有在定义数组的同时才可以整体赋值,
其他情况下整体赋值都是错误的
int a[5] = {1,2,3, 4, 5};
a[5] = 100; //error 因为没有a[5]这个元素,最后一个元素为a[4]
int a[5] = {1,2,3, 4, 5};
int b[5];
如果要把a数组中的值全部复制给b数组
错误的写法:
b = a;// error
正确的写法:
for(i=0; i<5; ++i)
b[i] = a[i];
*/
return 0 ;
}
# include <stdio.h>
/*
时间:2021年10月19日10点13分
目的;总结数组的用法
*/
int main (void)
{
//二维数组
int a[3][4] = {
{1, 2, 3, 4}, //数组的输出可用for循环实现
{5, 6, 7, 8},
{9, 10, 11, 12}
};
int i, j;
//输出数组内容.
for (i=0; i<3; ++i)
{
for (j=0; j<4; ++j)
printf("%d",a[i][j]);
}
printf("\n");
/*
int a[3][4] ;
总共是12个元素,可以当做3行4列看待,这12个元素的名字依次是
a[0][0] a[0][1] a[0][2] a[0][3]
a[1][0] a[1][1] a[1][2] a[1][3]
a[2][0] a[2][1] a[2][2] a[2][3]
a[i][j]表示第i+1行第 j+1列的元素
int a[m][n]; 该二维数组右下角位置的元素只能是a[m-1] [n-1]
初始化
int a[3][4] = {1,2,3, 4,5,6, 7, 8,9, 10, 11, 12} ;
int a[3] [4] = {
{1,2,3,4},
{5,6,7,8},
{9,10, 11, 12}
};
*/
return 0 ;
}
# include <stdio.h>
/*
时间:2021年10月19日10点13分
目的;总结数组的用法
*/
int main (void)
{
/*
多维数组
是否存在多维数组
不存在
因为内存是线性一维的
n维数组可以当做每个元素是n-1维数组的一维数组
比如:
int a[3][4];
该数组是含有3个元素的一维数组
只不过每个元素都可以再分成4个小元素
int a[3][4] [5] ;
该数组是含有3个元素的一维数组
只不过每个元素都是4行5列的二维数组
*/
return 0 ;
}