c语言之数组

1.一维数组

怎样定义一维数组

  • 为n个变量连续分配存储空间
  • 所有的变量数据类型必须相同
  • 所有变量所占的字节大小必须相等

一维数组名不代表数组中所有的元素,

一维数组名代表数组第一个元素的地址

1.1 初始化

完全初始化:

int a[5]={1,2,3,4,5};

不完全初始化,未初始化的元素自动为零

int a[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};

int b[5];

如果要把a数组中的值全部复制给b数组

错误的写法:

b=a;//错误

正确的写法:使用循环语句赋值

#include <stdio.h>

int main(void) 
{

    int a[5] = { 1,2,3,4,5 };
    int b[5];

    for (int i = 0;i < 5;i++) 
    {
        b[i] = a[i];
    }

    return 0;
}
#include <stdio.h>

int main(void)
{
    int a[5] = { 1,2,3,4,5 };

    for (int i = 0;i < 5;i++) 
    {
        printf("%d\n", a[i]);
    }

    return 0;
}

 数组倒序输出

#include <stdio.h>

int main(void) 
{
    int a[7] = { 1,2,3,4,5,6,7 };
    int i, j, t;

    printf("处理前的原数组为:");
    for (i = 0;i < 7;++i)
        printf("%d\t", a[i]);
    printf("\n");

    i = 0;
    j = 6;

    while (i < j) 
    {
        t = a[i];
        a[i] = a[j];
        a[j] = t;

        i++;
        j--;
    }
    
    printf("倒序输出的结果为:");
    for (i = 0;i < 7;++i)
        printf("%d\t", a[i]);
    printf("\n");

    return 0;
}

2.二维数组

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]

2.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}

};

#include <stdio.h>

int main(void)
{
    int a[3][4] = {
        {1,2,3,4},
        {5,6,7,8},
        {9,10,11,12}
    };
    
    //输出数组内容
    for (int i = 0;i < 3;i++) 
    {
        for (int j = 0;j < 4;j++) 
        {
            printf("%d\t", a[i][j]);
        }
        printf("\n");
    }


    return 0;
}

3.多维数组

是否存在多维数组

不存在

因为内存是线性一维的

n维数组可以当做每个元素是n-1维数组的一维数组

比如:

  int a[3][4];

    该数组是含有3个元素的一维数组

    只不过每个元素都可以再分成4个小元素

  int a[3][4][5];

    该数组是含有3个元素的一维数组

    只不过每个元素都是4行5列的二维数组

posted @ 2024-05-02 14:40  万溪汇海  阅读(0)  评论(0编辑  收藏  举报