首页 > 其他分享 >数组

数组

时间:2022-12-13 11:36:32浏览次数:43  
标签:数组 int ++ arr2 arr1 printf

1. 什么是数组

 

数组是一组相同类型元素的集合

 

2. 数组的分类

 

数组分为一维数组和二维数组

 

 

3. 一维数组

 

3.1 一维数组的创建和初始化

 

  • 创建数组的语法

 

  元素类型 数组名[常量表达式]

 

  常量表达式定义数组的元素的个数

  元素类型表示数组中每个元素的数据类型

 

注:在C99标准中,可以用变量定义数组的个数,但是不能初始化

 

  • 例子

 

#include <stdio.h>
int main()
{
    int arr1[3];            // 创建数组
    int arr2[3] = {0,1,2};  // 数组的创建和初始化
    
}

 

3.3 一维数组的使用

 

数组的使用可以分为两种,下标操作符访问和指针访问

 

  • 下标引用操作符访问

 

      下标引用操作符 [], 使用下标访问数组元素,下标从0开始递增

 

               

 

  • 例子

 

#include <stdio.h>
int main()
{
    int arr1[3];            // 创建数组
    int arr2[3] = {0,1,2};  // 数组的创建和初始化
 
    int i = 0;
    for (i = 0;i < 3; i++)
    {
        printf("%d ", arr2[i]); // 下标引用操作符访问数组
    }
    return 0;
}

 

 

  • 指针访问

 

  指针是存储内存单元地址的变量,数组名是数组首元素的地址

       

 

#include <stdio.h>
int main()
{
    int arr1[3];            // 创建数组
    int arr2[3] = {0,1,2};  // 数组的创建和初始化
 
    int i = 0;
    for (i = 0;i < 3; i++)
    {
        printf("%d ", arr2[i]); // 下标引用操作符访问数组
    }
    printf("\n");
    
    // 指针访问数组
    int* pa = arr2;
    int i = 0;
    for (i = 0; i < 3; i++)
    {
        printf("%d ", *(pa + i);
     }
    return 0;
}

 

 

 

 

 

3.3 一维数组在内存中的存储

 

一维数组在内存中是连续存储的,每一个数组元素根据数据类型占据字节,连续排列

 

 

#include <stdio.h>
int main()
{
    int arr1[3];            // 创建数组
    int arr2[3] = {0,1,2};  // 数组的创建和初始化
    int i = 0;
    for (i = 0; i < 3; i++)
    {
        printf("%p\n", arr[i]);
    }
    return 0;
}

 

 

int整型占据4个字节,每个元素占据4个字节,并连续排列

 

 

4. 二维数组

 

4.1 二维数组的创建和初始化

 

  • 创建

 

#include <stdio.h>
int main()
{
    // 二维数组的创建
    int arr1[3][3];
    char arr2[3][3];
    float arr3[3][3];
}

 

  •  初始化

 

#include <stdio.h>
int main()
{
    // 二维数组的初始化
    int arr1[3][3] = {1,2,3,4,5,6,7,8,9};
    int arr2[3][3] = { {1,2,3},{4,5,6},{7,8,9} };

}

 

4.2 二维数组的使用

 

二维数组和一维数组一样,可以使用下标引用操作符和指针进行访问

 

#include <stdio.h>
int main()
{
    // 二维数组的初始化
    int arr1[3][3] = { 1,2,3,4,5,6,7,8,9 };
    int arr2[3][3] = { {1,2,3},{4,5,6},{7,8,9} };

    // 下标引用操作符
    int i = 0;
    for (i = 0; i < 3; i++)
    {
        int j = 0;
        for (j = 0; j < 3; j++)
        {
            printf("%d ", arr1[i][j]);
        }
        printf("\n");
    }

    printf("\n");
    
    // 指针访问
    int* pa = arr1;
    for (i = 0; i < 3; i++)
    {
        int j = 0;
        for (j = 0; j < 3; j++)
        {
            printf("%d ",*(pa + j));
        }
        pa += 3;
        printf("\n");
    }
}

 

 

 

 

4.3 二维数组在内存中的存储

 

二维数组和一维数组一样,在内存中是连续存储的

 

 

#include <stdio.h>
int main()
{
    // 二维数组的初始化
    int arr1[3][3] = { 1,2,3,4,5,6,7,8,9 };

    int i = 0;
    for (i = 0; i < 3; i++)
    {
        int j = 0;
        for (j = 0; j < 3; j++)
        {
            printf("arr[%d][%d] = %p", i,j,&arr1[i][j]);
            printf("\n");
        }
        printf("\n");
    }
}

 

 

  

 

标签:数组,int,++,arr2,arr1,printf
From: https://www.cnblogs.com/xumu11291/p/16975816.html

相关文章

  • Java数组(1)
        ......
  • 计算一个数组中L位置到R位置的数组元素之和
    计算一个数组中L位置到R位置的数组元素之和解题思路一:我们很容易想到遍历数组,遍历数组L位置到R位置的元素并相机得到和代码:publicclassPreSum{ publicstaticcl......
  • 返回数组中的局部最小
    返回数组中的局部最小局部最小的定义:所谓局部最小就是比它右边小同时也要比它左边小,如果是数组的第一个元素那么只需要比它下一个元素小也就是局部最小,如果是最后一个......
  • 第一百一十二篇: JS数组Array(一)数组基本用法
    好家伙, 1.数组 Array应该就是ECMAScript中最常用的类型了。ECMAScript数组跟其他编程语言的数组有很大区别。跟其他语言中的数组一样,ECMAScript数组也是一组有序的......
  • 代码随想录训练营第六天|LeetCode242有效的字母异位词、LeetCode349两个数组的交集、L
    LeetCode242有效的字母异位词tag:#哈希表#数组leetcode地址:242. 有效的字母异位词代码://通过数组的方式对每个字母进行统计数量,然后遍历数组,查看是否每一项都为0f......
  • java 数组实现队列
     算法题用数组实现队列,三个函数,分别是添加add(),出队poll()和获取队中的元素个数getSize()当队的元素满的时候进行二倍的扩容。classmyqueue{privateint[]date;......
  • 数据结构之数组
    1.数组实现数组的特点:内存是连续的,即物理地址是连续的。优点:随机访问的时间复杂度为O(1);末尾位置增加元素的时间复杂度为O(1);访问元素前后相邻位置的元素非常方便......
  • 【LeetCode】二分法--剑指 Offer 53 - I. 在排序数组中查找数字 I
    点击直达题目内容统计一个数字在排序数组中出现的次数。示例示例1:输入:nums=[5,7,7,8,8,10],target=8输出:2示例2:输入:nums=[5,7,7,8,8,10],target......
  • 数组的活学活用(一)
    概览数组我们知道,是一种有序连续的数据结构,随机访问的效率高。之所以随机访问的效率高,就是因为它的每个值都有下标,可以根据下标直接找到我们想要的值。 既然我们已经......
  • Shell数组基本概述
    1.数组基本概述01.什么是数组?数组其实也算是变量,传统的变量只能存储一个值,但数组可以存储多个值。02.数组的分类Shell数组分为普通数组和关联数组。普通数组:只能使......