第六章 数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第六章 数组相关的知识,希望对你有一定的参考价值。

  • 一维数组的定义

  例如:

    int array[5];

    int 为类型说明符; array 为数组名称; [5] 为常量表达式,表示数组包含5个数组元素。

  注:(1)常量表达式必须用中括号[ ]括起来,定义形式末尾必须加分号;

    (2)“类型说明符”用来说明数组中各个元素的类型;

    (3)“常量表达式”表示数组长度,即元素的个数;

    (4)数组名是说明数组所用的标识符,其命名规则与标识符的命名规则相同;

    (5)根据数组的存储分配方法,数组中各个元素顺序相邻地存储在一段连续的内存中。

 

  • 一维数组的引用

 

 1 #include <stdio.h>
 2 
 3 void main(void)
 4 {
 5     int a[5], i;
 6     printf("please input 5 int numbers:\n");
 7     for (i = 0; i < 5; i++)
 8     {
 9         scanf("%d",&a[i]);
10     }
11     printf("按照相反顺序输出为:\n");
12     for (i = 4; i >= 0; i--)
13     {
14         printf("%d ",a[i]);
15     }
16 }

 

 

  • 一维数组的初始化
1) 可以在数组的初始化部分将各个元素的值用逗号隔开:

        int a[5]={12,4,5,6,32};

(2) 如果元素值的个数和数组长度相等,可以不指定数组长度:

        int a[]={12,4,5,6,32}; 

(3) 可以只给数组的部分元素赋初值:

        int a[5]={12,47,6};  //将 a[0], a[1], a[2] 的值分别初始化为12、47、6

 

  • 二维数组的定义
类型说明符 数组名[变量表达式1][变量表达式2];

int a[2][3];

注:
(1)"变量表达式1"表示行数,"变量表达式2"表示列数
(2)二维数组在内存中存放的顺序是:按行存放,即先存第一行再存第二行

 

  • 二维数组的初始化
对二维数组的初始化方法如下所示:

(1)分行对所有元素赋初值:
int a[2][3]={{1,7,6},{2,3,17}}; 
//第一个花括号按顺序赋值给第一行
2)可以将所有的数据写在一个花括号里面:
int a[2][3]={1,7,6,2,3,17};
//根据数据元素存储的优先原则,先赋值个第一行的元素,再赋值给第二行的元素
3)可以对每一行的前一部分元素赋初值:
int [2][3]={{1},{2,6}};
//1,2,6分别赋值给a[0][0],a[1][0],a[1][1]
4)如果对全部的元素赋初值,则第一维的长度可以不指定,但第二维的长度不能省
int a[][3]={1,7,6,2,3,17};
//也可以只对部分元素赋初值,但应分行赋初值,如:
int a[][3]={{1},{2,6}};

 

  • 二维数组程序举例

  按行优先次序输入一个矩阵,然后按列优先次序输出

#include<stdio.h>
void main(void)
{
    int a[2][3], i, j;
    printf("请输入一个2x3矩阵:\n");
    for (i = 0; i < 2; i++)
    {
        for (j = 0; j < 3; j++)
        {
            scanf("%d",&a[i][j]);
        }
    }
    printf("输出矩阵如下:\n");
    for (j = 0; j < 3; j++)
    {
        printf("\n");
        for (i = 0; i <2; i++)
        {
            printf("%d ",a[i][j]);
        }
    }
    return;
}

 

字符数组

  • 字符串常量

     字符数组可以被视为是字符变量的集合。和它对应的是字符串常量,所谓字符串常量就是一对双引号括起来的字符常量的集合。例如:“abc”,“hello”都是字符串常量。

 

     字符串在存储到内存中时,系统会自动添加一个 ‘\0‘ 作为字符串结束标志,代表ASCII码值为 0 的字符,不显示,在对字符串进行操作的时候,如果遇到 ‘\0‘ 就表示字符串结束。

 

     需要注意的是: ‘a‘ 是一个字符常量,只包含一个字符; 而 "a" 是一个字符串常量,它包含两个字符,字符‘a‘ 和字符串结束标识字符 ‘\0‘ 。

 

  • 字符数组的定义
//字符数组包括一维字符数组和多维字符数组(以二维为例)

char 数组名[变量表达式];
char 数组名[变量表达式1][变量表达式2];

例如:
char a1[10]; //声明1个长度为10的字符串
char a2[3][10]; //声明3个长度为10的字符串

 

  • 字符数组的引用

 

以上是关于第六章 数组的主要内容,如果未能解决你的问题,请参考以下文章

第六章 Shell数组应用

第六章 数组和索引器 (6.6 索引器)

数据结构:第六章学习小结

第六章循环结构进阶

高级数据结构第六章E . 苹果树 (dfs+树状数组)

语法》第六章 数组