「C系列」C 数组

2024-06-17 1251阅读

文章目录

  • 一、C 数组
    • 1. 声明数组
    • 2. 初始化数组
    • 3. 访问数组元素
    • 4. 数组越界
    • 5. 多维数组
    • 二、C 操作数组的方法有哪些
    • 三、C 数组-应用场景
      • 1. 存储固定数量的数据
      • 2. 实现算法(如排序)
      • 3. 处理数据集合
      • 四、相关链接

        一、C 数组

        在C语言中,数组是一种数据结构,用于存储相同类型的元素的集合。数组的大小在创建时确定,并且在整个数组的生命周期内保持不变。C语言中的数组是静态的,意味着一旦创建,就不能改变其大小。

        「C系列」C 数组
        (图片来源网络,侵删)

        1. 声明数组

        在C语言中,你可以使用以下语法声明数组:

        type arrayName[size];
        

        其中:

        • type 是数组中元素的类型(如 int、float、char 等)。
        • arrayName 是数组的名称。
        • size 是数组的大小,表示数组可以容纳的元素数量。

          2. 初始化数组

          你可以在声明数组的同时初始化它:

          int numbers[] = {1, 2, 3, 4, 5}; // 隐式指定大小
          int days[7] = {1, 2, 3, 4, 5, 6, 7}; // 显式指定大小
          

          3. 访问数组元素

          你可以使用索引来访问数组中的元素。在C语言中,数组的索引从0开始。以下是如何访问数组元素的示例:

          #include 
          int main() {
              int numbers[] = {1, 2, 3, 4, 5};
              printf("The first element is: %d\n", numbers[0]);
              printf("The last element is: %d\n", numbers[4]);
              return 0;
          }
          

          4. 数组越界

          C语言不会检查你是否访问了数组的有效范围。如果你试图访问一个不存在的数组元素(即索引超出了数组的大小),你将会得到一个未定义的行为,这可能导致程序崩溃或产生意外的结果。因此,当使用数组时,务必确保不要越界。

          5. 多维数组

          C语言还支持多维数组,如二维数组和三维数组等。二维数组通常用于表示矩阵或表格。以下是一个二维数组的示例:

          #include 
          int main() {
              int matrix[3][3] = {
                  {1, 2, 3},
                  {4, 5, 6},
                  {7, 8, 9}
              };
              printf("Element at row 1, column 2 is: %d\n", matrix[1][2]);
              return 0;
          }
          

          二、C 操作数组的方法有哪些

          在C语言中,操作数组的方法通常包括以下几个基本类别:

          1. 数组声明与初始化:
          • 声明一个数组时,需要指定数组的类型和大小。
          • 可以在声明的同时初始化数组,也可以后续逐个赋值。
            int array[10]; // 声明一个大小为10的整型数组
            int array2[5] = {1, 2, 3, 4, 5}; // 声明并初始化一个整型数组
            
            1. 数组元素访问:
            • 使用索引(下标)来访问数组中的元素。索引从0开始。
              int value = array[2]; // 访问数组的第三个元素(因为索引从0开始)
              
              1. 遍历数组:
              • 使用循环结构(如for循环、while循环)遍历数组的每个元素。
                for (int i = 0; i  
                
                1. 修改数组元素:
                • 直接使用索引和赋值运算符来修改数组中的元素。
                  array[2] = 100; // 修改数组的第三个元素为100
                  
                  1. 数组作为函数参数:
                  • 可以将数组作为参数传递给函数,但通常需要传递数组的首地址和大小(因为C语言中的数组名实际上是首元素的地址)。
                    void printArray(int arr[], int size) {
                       for (int i = 0; i  
                    
                    1. 数组与字符串:
                    • C语言中的字符串实际上是字符数组。可以使用字符数组来存储和操作字符串。
                      char str[10] = "Hello"; // 声明并初始化一个字符数组(字符串)
                      
                      1. 数组排序:
                      • 使用各种排序算法(如冒泡排序、选择排序、插入排序、快速排序等)对数组进行排序。
                        // 示例:冒泡排序
                        void bubbleSort(int arr[], int n) {
                           // ... 排序算法的实现 ...
                        }
                        
                        1. 数组搜索:
                        • 实现各种搜索算法(如线性搜索、二分搜索等)来在数组中查找特定元素。
                          // 示例:线性搜索
                          int linearSearch(int arr[], int n, int target) {
                             for (int i = 0; i  
                          
                          1. 多维数组:
                          • 可以声明和操作多维数组,如二维数组、三维数组等。
                            int matrix[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; // 声明并初始化一个二维数组
                            
                            1. 动态数组:
                            • C语言本身不支持动态数组(在运行时改变大小),但可以使用指针和动态内存分配(如malloc和free)来模拟动态数组的行为。
                              int *dynamicArray = malloc(10 * sizeof(int)); // 动态分配内存
                              // ... 使用数组 ...
                              free(dynamicArray); // 释放内存
                              

                              三、C 数组-应用场景

                              C 数组在编程中有广泛的应用场景,包括但不限于存储固定数量的数据、实现算法(如排序、搜索等)、处理数据集合等。以下是一些具体的应用场景和相应的详细案例代码。

                              1. 存储固定数量的数据

                              假设我们要存储一个班级中所有学生的成绩。

                              #include 
                              int main() {
                                  // 假设班级有10个学生
                                  int grades[10];
                                  // 假设我们已经有了学生的成绩
                                  for (int i = 0; i  
                              

                              2. 实现算法(如排序)

                              使用数组来实现冒泡排序算法。

                              #include 
                              void bubbleSort(int arr[], int n) {
                                  for (int i = 0; i  arr[j + 1]) {
                                              // 交换 arr[j] 和 arr[j + 1]
                                              int temp = arr[j];
                                              arr[j] = arr[j + 1];
                                              arr[j + 1] = temp;
                                          }
                                      }
                                  }
                              }
                              int main() {
                                  int arr[] = {64, 34, 25, 12, 22, 11, 90};
                                  int n = sizeof(arr) / sizeof(arr[0]);
                                  bubbleSort(arr, n);
                                  printf("Sorted array: \n");
                                  for (int i = 0; i  
                              

                              3. 处理数据集合

                              假设我们有一个整数数组,我们需要找出数组中的最大值和最小值。

                              #include 
                              int main() {
                                  int arr[] = {5, 1, 9, 3, 7};
                                  int n = sizeof(arr) / sizeof(arr[0]);
                                  int min = arr[0], max = arr[0];
                                  // 遍历数组找到最大值和最小值
                                  for (int i = 1; i  max) {
                                          max = arr[i];
                                      }
                                  }
                                  printf("Minimum element in array is %d\n", min);
                                  printf("Maximum element in array is %d\n", max);
                                  return 0;
                              }
                              

                              这些示例展示了 C 数组在不同场景中的应用,从简单的数据存储到复杂的算法实现。

                              四、相关链接

                              1. Visual Studio Code下载地址
                              2. Sublime Text下载地址
                              3. 「C系列」C 简介
                              4. 「C系列」C 基本语法
                              5. 「C系列」C 数据类型
                              6. 「C系列」C 变量及常见问题梳理
                              7. 「C系列」C 常量
                              8. 「C系列」C 存储类
                              9. 「C系列」C 运算符
                              10. 「C系列」C 判断/循环
                              11. 「C系列」C 函数
                              12. 「C系列」C 作用域规则
VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]