3.一维二维数组

任何数组的数组名代表数组首元素地址

知识点一: 一维数组

1、数组的概述

一维数组

2、一维数组的定义

     格式:数据类型 数组名[数组元素个数]

     需求:请定义一个数组,该数组有10个元素每个元素为int 例:int arr[10];

     注意(int arr[10]):

          1)数组名arr不能和其他变量名同名

          2)数组的元素小标是从0开始: 0~9

          3)数组的元素分别是: arr[0]、 arr[1] ~ arr[9],如果访问arr[10]数组越界

          4)数组的元素等价于普通变量

          5)在定义数组的时候,[]里面的值不能变量(C89标准)

3、数组的遍历

#include<stdio.h>
void test7()
{
    //局部变量,如果不初始化内容不确定 
    int arr[10];
    int i = 0;
    //遍历数组 
    for(i = 0;i<10;i++)
    {
        printf("%d",arr[i]);  //输出的都是不确定的值 
    }
    printf("\n");
} 

4、数组初始化

初始化:定义的时候给变量或数组元素赋值的动作叫初始化

(1)全部初始化:

int arr[5] = {10, 20,30, 40, 50};
//如果是全部初始化数组 元素的个数 可以省略 实际的元素个数 由初始化个数决定
int arr[] = {10,20,30, 40,50};       //少用

(2)部分初始化:

//部分初始化 未被初始化 部分自动补0
int arr[5] = {10,20, 30};
//初始化数组 常见的操作 (将数组的所有元素清零)
int arr[5] = {0};         //只初始化arr[0]=0,未被初始化部分 自动补0,则全部都为0

(3)扩展:初始化

int arr[5]={[2]=3,[4]=7};//0 030 7
//[2]=3将数组的第2个元素,初始化为3
//[4]=7将数组的第4个元素,初始化为7

5、数组的空间大小:

     1)arr数组名作为数组类型时,代表的是数组空间的总大小

     2)数组的总大小 = 元素的个数 * 每个元素的大小

     3)数组:元素的大小 arr[0]是数组的第0个元素

     4)数组元素的个数 = 数组总大小 / 每个元素的大小

#include<stdio.h>
void test1()
{
    //arr数组名作为数组类型代表的是数组空间的总大小 
    int arr [5] = {10,20,30,40,50};
    int n = 0;
    
    //数组的总大小=元素的个数*每个元素的大小 
    printf("数组的总大小:%d\n",sizeof(arr));	//数组的总大小20
    
    //数组:元素的大小    arr[0] 是数组的第0个元素
    printf("数组元素的大小=%d\n",sizeof(arr[0]));	//数组元素大小=4
    
    //数组元素的个数 = 数组总大小/每个元素的大小
    n = sizeof(arr)/sizeof(arr[0]);
    printf("数组元素的个数=%d\n",n);	//数组元素的个数=5
}
int main(int argc,char *argv[])
{
    test1();
    return 0;
}

6、数组元素的操作

数组的元素等价于普通变量

//num++;
arr [1]++;  //arr[1] = arr[1]+1;
 //scanf("%d",&num)
scanf("%d",&arr[2]);

7、键盘获取一维数组

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

知识点二: 二维数组

1、二维数组的定义

     格式:数据类型 数组名[的个数][的个数]

二维数组

     int arr [3][4]

二维数组地址分析

2、二维数组的遍历

int i=0;
int j = 0;
//遍历第i列
for(i=0;i<3;i++)
{
    //遍历第j行    
    for(j = 0;j<4; j++)
    {
        printf("%d ",arr[i][j] )
    }
}

3、二维数组初始化

     不管是数值还是字符的二维数组,在初始化的时候是可以省略行标的,行数由具体初始化元素个数列数决定出所需要的行数

分段初始化

     用{}里面的{}明确的表示一行

int arr[3][4] = { {1,2,3,4}{5,6,7,8}{9,10,11,12} };

连续初始化

     放满一行才能放下一行

int arr[3][4] = {1,2,3,4,5,6,7,8,9, 10,11, 12};

4、键盘获取二维数组

int i,j = 0;
int arr [3][4] = {0};
for(i=0;i<3;i++)
{
    for(j=0;j<4;j++)
    {
        scanf("%d",&arr[i][j]);
    }
}
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星仔_X

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值