• C语言——数组、字符串


     

    一、一维数组

          存放一组同种类型的数据。

          1、数组的定义  

            元素类型 数组名[元素个数];

           

    1      //都是正确写法
    2     int ages[5] = {10 , 11, 12, 67, 56};
    3     int ages[5] = {10, 11};
    4     int ages[5] = {[3] = 10, [4] = 11};
    5     int ages[] = {10, 11, 14};
    6     
    7     // 错误写法
    8      int ages[];

          2、 数组的初始化        

         

    1 // 错误写法
    2     //只能在定义数组的同时进行初始化
    3     int ages[5];
    4     ages = {10, 11, 12, 14};
    //正确写法
    //只能在定义数组的同时进行初始化
        int ages[5] = {10, 11, 12, 14};
    1 // 正确写法
    2     /*
    3     int count = 5;
    4     int ages[count];
    5     ages[0] = 10;
    6     ages[1] = 11;
    7     ages[2] = 18;
    8     */

        3、 数组的基本使用

     1 / 数组的基本使用
     2 void arrayUse()
     3 {
     4     // 数组的定义格式: 类型 数组名[元素个数];
     5     int ages[5] = {19, 29, 28, 27, 26};
     6     // 19 19 28 27 26]
     7     ages[1] = 29;
     8     
     9     /*
    10      ages[0] = 19;
    11      ages[1] = 19;
    12      ages[2] = 28;
    13      ages[3] = 27;
    14      ages[4] = 26;
    15      */
    16     
    17     /*
    18      遍历:按顺序查看数组的每一个元素
    19      */
    20     for (int i = 0; i<5; i++)
    21     {
    22         printf("ages[%d]=%d
    ", i, ages[i]);
    23     }
    24 }

        4、 数组在内存中的分析

           ①  数组存储空间的大小 

           ②  存储空间的划分(内存的分配是从高地址到低地址进行的,但一个数组内部元素又是从低到高进行的)

           ③  数组名的作用,查看元素地址

       

     1 #include <stdio.h>
     2 
     3 /*
     4  提示用户输入5个学生的成绩,算出平均分并且输出
     5  */
     6 
     7 int main()
     8 {
     9     
    10     
    11     // 1.定义一个数组来存储成绩
    12     int scores[5];
    13     
    14     // 2.提示输入成绩
    15     // 用来存储总分
    16     int sum = 0;
    17     for (int i = 0; i<5; i++) {
    18         // 2.1 提示输入某个学生的成绩
    19         printf("请输入第%d个学生的成绩:
    ", i + 1);
    20         // 2.2 存储当前学生的成绩
    21         scanf("%d", &scores[i]);
    22         // 2.3 累加成绩
    23         sum += scores[i];
    24     }
    25     
    26     // 3.计算平均分,并且输出
    27     printf("平均分是%f
    ", sum/5.0);
    28     return 0;
    29 }

    5、 数组与函数的关系和应用

        ① 数组作为函数参数,可以省略元素个数

        ②  数组作为函数参数,传递是整个数组的地址,修改函数形参数组元素的值,会影响到外面的实参数组

       

     1 #include <stdio.h>
     2 void change(int array[])
     3 {
     4     //printf("array==%p
    ", array);
     5     
     6     array[0] = 100;
     7 }
     8 
     9 void change2(int n)
    10 {
    11     n = 100;
    12 }
    13 
    14 int main()
    15 {
    16     int ages[6] = {10, 11, 10, 11, 10, 11};
    17     
    18     //printf("ages==%p
    ", ages);
    19     
    20     change(ages);
    21     
    22     //change2(ages[0]);
    23     
    24     printf("%d
    ", ages[0]);
    25     return 0;
    26 }

    二、二维数组

         二维数组是一个特殊的一维数组:它的元素是一维数组

        1、数组的定义和初始化

            

    1   int a[3][4] = {1,2,3,4,5,6};
    2   int a[3][4] = {{},{},{}};
    3 //数组元素简单访问
    4   int a[][5] = {3,21,31,2,32,1};
    5 
    6 //注意错误:
    7   int a[3][4];
    8   a[3] = {};

       2、二维数组的简单运用

        

     1 /*
     2      1 浅蓝色
     3      2 深蓝色
     4      3 黄色
     5      4 红色
     6      -1 没有
     7      */
     8     
     9     int cubes[5][5] = {
    10         {1, -1, -1, -1, -1},
    11         {1, 1, -1, 2, -1},
    12         {4, 1, 2, 2, 2},
    13         {4, 3, 3, 3, 3},
    14         {4, 3, 3, 3, 3}
    15     };
    16     

     三、字符串

         很多单个字符组合在一起,成为字符串。

         1、字符串的初始化

             

     1 // 字符串的一个初始化
     2 void test2()
     3 {
     4     // 的ASCII码值是0
     5     // 都是字符串
     6     char name[8] = "it";
     7     char name2[8] = {'i', 't', ''};
     8     char name3[8] = {'i', 't', 0};
     9     char name4[8] = {'i', 't'};
    10     
    11     // 不算是一个字符串(只能说是一个字符数组)
    12     char name5[] = {'i', 't'};
    13 }

         2、 的作用

           字符串结束的标记,从字符串开始开始地址输出字符,直到遇见结束

          

     1 #include <stdio.h>
     2 
     3 /*
     4  printf("%s", name2);
     5  会从name2这个地址开始输出字符,直到遇到为止
     6  */
     7 
     8 int main()
     9 {
    10     
    11     char name2[] = {'o', 'k'};
    12     
    13     printf("%s
    ", name2);
    14     
    15   
    16     
    17     return 0;
    18 }

       3、 Strlen(字符串处理函数)

            strlen函数:计算字符串长度

             ①  计算的是字符数,并不是字数。一个汉字算作3个字符

             ②  计算的字符不包括

             ③  从某个地址开始数字符的个数,直到遇到为止

         

     1 // strlen函数声明在string.h文件中
     2 #include <string.h>
     3 #include <stdio.h>
     4 
     5 int main()
     6 {
     7    
     8     char name2[] = {'0', '', '6'};
     9     
    10     int size = strlen(name2);
    11     
    12     printf("%d
    ", size);
    13  
    14     
    15     return 0;
    16 }

    四、 字符串数组

           字符串数组的好处,可以用一个数组存放一个字符串,方便对字符串中的单个字符进行操作,存储多个字符串可以使用二维数组。

           字符串的初始化

            

     1 #include <stdio.h>
     2 int main()
     3 {
     4     char name[] = "jack";
     5     
     6     char name1[] = "rose";
     7     
     8     char name2[] = "jim";
     9     
    10     char name3[] = "jake";
    11     
    12     char names[2][10]= {"jack", "rose"};
    13     
    14     char names2[2][10] =
    15     {
    16         {'j', 'a', 'c', 'k', ''},
    17         {'r', 'o', 's', 't', ''}
    18     };
    19     
    20     
    21     return 0;
    22 }
  • 相关阅读:
    springboot接口测试
    谷粒学院_day08_课程管理_添加课程之课程发布(后端开发)
    谷粒学院_day03_vue组件
    谷粒学院_day03_vue固定代码抽取
    vue自定义事件
    vue插槽slot
    vue基本语法
    Vue之axios异步通信
    无归岛[HNOI2009]
    仓库建设[ZJOI2007]
  • 原文地址:https://www.cnblogs.com/gaizuojia/p/4356464.html
Copyright © 2020-2023  润新知