数组的相关的学习

 数组可以说是目前为止讲到的第一个真正意义上存储数据的结构。虽然前面学习的变量也能存储数据,
但变量所能存储的数据很有限。不仅如此,数组和指针(后续会讲)是相辅相成的,学习数组可以为学
习指针打下基础。
那么到底什么是数组呢?顾名思义数组就是很多数的集合!那么这些数有没有什么要求呢,是不是不管
什么数组合在一起都是数组呢?同一数组中存储的数必须满足以下两个条件:
1. 这些数的类型必须相同。
2. 这些数在内存中必须是连续存储的。
换句话说,数组是在内存中连续存储的具有相同类型的一组数据的集合.

 数组的定义:数组是一种有序的元素序列,它由相同类型的变量组成,并通过数组名进行标识.

 数组的类型:数值数组,字符数组,指针数组,结构数组等。

 数组的初始化:

1>完全初始化:给数组的所有元素赋值。int  arr[ 5 ] = {1,2,3,4,5};

2>不完全初始化:给数组的部分元素赋值。int arr[ 5 ] = {1,2,3};

 数组的使用:

        1、一维数组

#include <stdio.h>
int main(){
    int arr[10] = {0};
    int length = sizeof(arr) / sizeof(arr[0]);//计算数组长度
    //对数组值进行访问,下标从0开始
    //对数组内容进行输出
    for(int i = 0;i<10;i++){
        printf("%d\n",arr[i]);
    }
    return 0;
}

        2、二维数组

#include <stdio.h>
int main(){
    int arr[5][5] = { {1,3,5},{2,4,6} };
    //获取行数
    int rows = sizeof(arr) / sizeof(arr[0]);
    //获取每一行中元素的个数
    int cells = sizeof(arr[0]) / sizeof(arr[0][0]);
    //输出二维数组
    for(int i = 0;i<5;i++){
        for(int j = 0;j<5;j++){
            printf("%d",arr[i][j]);
        }
    }
    return 0;
}

 字符数组的输入:

scanf("%s",字符数组的首地址);

#include <stdio.h>
int main(){
    int arr[256] = {0};
    scanf("%s",arr);
    printf("%s",arr);
    return 0;
}

 数组的存储:

特点:数组在内存中的存储都是连续的。

#include <stdio.h>
int main(){
    int arr[10] = {0};
    int length = sizeof(arr) / sizeof(arr[0]);
    //下标
    for(int i = 0;i<length;i++){
        arr[i] = i;
    }
    //输出每个数组的每个元素的地址
    for(i = 0;i<length;i++){
        printf("%p\n",&arr[i]);
    }
    return 0;
}

0x7ffda8024fb0
0x7ffda8024fb4
0x7ffda8024fb8
0x7ffda8024fbc
0x7ffda8024fc0
0x7ffda8024fc4
0x7ffda8024fc8
0x7ffda8024fcc
0x7ffda8024fd0
0x7ffda8024fd4

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值