• 06、C语言——数组


    数组

    一、数组的基础知识

       1、同一数组中的所有元素都属于同一种数据类型(int char float),数组元素用数组名和相应的下标来确定

       2、一个数组元素其实就是一个变量(可以称为带下标的变量)

       3、一批类型相同的数据的集合

    二、一维数组

       1、一维数组的定义格式

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

          注意:       

            1)常量表达式的值表示所定义数组共有多少个元素(数组长度或数组的大小或数组元素的个数)      

            2)定义数组时方括号中的表达式不能含有变量。另外表达式的值必须要大于零且为正整数         

            3) 常量表达式是由加减乘除所连接的表达式,不能是变量

            4)注意:

            int N = 9;
            int a[N];            此时的N是变量,此书写格式错误
            #define N 9         int a[N]; 此时的N是符号常量,此写法是对的

       2、一维数组元素的引用格式

          数组名[下标]

          注意:

            1)C语言中不能对数组进行整体引用只能单独引用其中的元素。引用时下标可以是表达式

            2)数组必须先定义后使用

            3)数组不能整体使用,必须使用其元素

            4)数组元素的下标值在(0~n-1之间)

       3、一维数组的初始化格式 

          类型名 数组名[常量表达式]={初值1,初值2,...};

          注意:
            1)定义一维数组时可以讲个元素的初始值依次放在一对{}中赋给数组(必须用{}将初值括起来,且初值之间用一个逗号分隔)

            2)赋的值多则出错;少则补0

            3)定义赋初值的个数等于数组长度,则数组长度可以省略

            4)当一个值都不赋,则是随机值

            5)只能在定义数组的同时用{}给数组元素整体赋值

    三、二维数组

        1、二维数组的定义格式

          类型名 数组名[常量表达式1][常量表达式2]

          注意:

            1)定义数组时方括号的表达式不能含有变量,且表达式的值必须是大于0的正整数

            2)在内存中二维数组元素的存放也是连续的先行后列原则

        2、二维数组元素的引用

          数组名[行下标][列下标]

          注意:

            1)不能整体引用,只能引用其中的元素

            2)引用二维数组元素时,必须有行下标和列下标两个下标。从0开始依次加1.

        3、二维数组的初始化

          方法1:将初值依序放在一对{}中,与一维数组初始化格式相同

          方法2:定义二维数组同时,按行初始化每一行初值均用一对{}括起来,采用嵌套的{}格式。

          注意:

            1)定义二维数组的同时给数组初始化,则可以省略行数,但列数不能省略

            2)int a[][3];此语句错误,给数组初始化的时候可以将二维数组的行数省略

            3)初始化中的数据是按照列下标的个数进行划分——按列划分

    四、字符数组

        1、字符数组的初始化——与其它类型数组的初始化方式一样,只是其初始值是字符

          char s[] = {'a','b','c','d'};

        2、字符串

            1)字符串常量后有一个‘’

              如:“abcd” 由5个字符组成;“”等价与“”,是一个空字符串;''是字符型,""空串是由一个''字符型组成

              注:因为字符串最后都有一个字符串结束符(‘’),所以用字符数组来存放字符串是一定要有一个元素存放结束符''

            2)用字符串给一字符数组进行初始化有三种情况:

              方法1:char a[]="abcd";

              方法2:char a[]={"abcd"};

              方法3: char a[]={'a','b','c','d',''} 

              注:只有双引号出现的时候才能可以将花括号省略    

        3、字符串使用

            1)字符串存储(赋值)四种方法

              方法1:scanf();键盘输入

                char a[10];
                scanf("%s",a);
                注意:用%s格式输入时,遇到空格符或回车符则自动结束输入
    

              方法1:printf();输出      

                char s[10];
                scanf("%s",s);
                printf("%s",s);
                注意:输出时则从当前地址开始直到遇到结束符''为止
    

              方法2:gets()键盘输入

                #include<stdio.h>
                gets(字符数组或字符串常量)
                功能:读取一个字符串赋给字符数组
                注意:
                  1)用该函数输入字符时,只有遇到回车符系统才结束读取字符
                  2)不论是用%s还是gets()在输入时均不需要输入双引号,若输入时用来双引号则双引号也作为字符串的有效字符、
    

              方法2:puts()输出

                功能:在屏幕上输出字符数组中的字符

                注意:用该函数输出与用%s格式输出一样,只是该函数将''转成' '输出

              方法3:字符串初始化

                char a[]="abcd";

                char a[]={"abcd"};            char a[]={'a','b','c','d',''};


            2)字符串函数
                第一个函数:strcat()

                 #include<string.h>
                 strcat(字符数组1,字符数组2)
                 功能:“连接”
                    第一个''开始连入
                    第二个串的''也连入
    

                第二个函数:strcpy()

                #include<string.h>
                strcpy(字符数组1,字符数组2)
                功能:将字符数组2中的字符串替换到字符数组1中。函数值为字符数组1的首地址
                      第一个字符开始复制    
                      第二个字符的''也复制过去            
    

                第三个函数:strcmp()

                 #include<string.h>
                strcmp(字符数组1,字符数组2)
                功能:函数返回值相同位置不同字符的ASCII码差值
                      返回的是一个数值

                第四个函数:strlen()

                #include<string.h>
                strlen(字符数组)
                功能:求出字符数组的实际长度(不包括结束符)
    

      

  • 相关阅读:
    js创建map
    [POJ 1911] 棋盘
    [POJ 2176] Folding
    [POJ 1014] Dividing
    [洛谷P3486]POI2009 KON-Ticket Inspector
    [洛谷P1131] ZJOI2007 时态同步
    [洛谷P1133] 教主的花园
    [洛谷P1095]NOIP2007 普及组T3 守望者的逃离
    [POJ1187] 陨石的秘密
    [POJ1772] Substract
  • 原文地址:https://www.cnblogs.com/wxt19941024/p/6937265.html
Copyright © 2020-2023  润新知