• C语言之数组


    数组定义

    同一类型的变量——元素(element)集中在一起,在内存上排列成一条直线,这就是数组。

    元素的类型既可以是int类型,也可以是double类型。

    数组的声明

    数组的声明通过指定的元素类型,变量名,元素个数。另外[ ]中的元素个数必须是常量。

    图示:

    数组的特点

    类型相同的元素组成的集合。
    空间连续
    

    取元素的个数

    数组的总大小=元素的个数 * 每个元素的大小

    数组名arr作为类型时候,数组的总大小 == sizeof(arr)
    每个元素的大小 == sizeof(arr[0])
    元素的个数 = sizeof(arr)/sizeof(arr[0]);
    

    代码示例

    #include <stdio.h>
    
    int main() {
        // 定义数组
        int arr[5];
        int n = sizeof(arr) / sizeof(arr[0]);//元素的个数
        printf("元素个数:%d
    ", n);
    
        //数组的下标:0~4   arr[0]  arr[1] ...arr[4]
         printf("sizeof(arr) = %u
    ",sizeof(arr));//20
         printf("sizeof(arr[0]) = %u
    ",sizeof(arr[0]));//4
    
         // 2.遍历数组
        for (int i = 0; i < n; i++)
        {
            printf("%d ", arr[i]);
        }
         printf("
    ");
        return 0;
    }
    

    数组初始化

    初始化全部元素

    #include <stdio.h>
    int main() {
        // 数组初始化
        int a[5] = {1,2,3,4,5};
        int b[5] = {1,2,3};
        return 0;
    }
    

    初始化部分元素

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

    定义的时候不加元素个数

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

    注意

    • 数组一定要初始化。
    • 最终数组的元素个数由初始化的数据个数决定。

    元素访问

    遍历数组

    代码示例

    #include <stdio.h>
    
    int main() {
        // 1.数组初始化
        int arr[] = {10,20,30,40,50};
        // 2.元素的个数
        int n = sizeof(arr) / sizeof(arr[0]);
        printf("n = %d
    ",n);
    
        // 遍历数组
        for (int i = 0; i < n; i++)
        {
            printf("%d ", arr[i]);
        }
        printf("
    ");
        
        return 0;
    }
    

    一维数组案例

    定义数组,获取键盘录入,求出数组的平均值 最大 最小 值

    #include <stdio.h>
    
    int main() {
        // 定义数组
        int arr[5] = {0};
        // 元素的个数
        int n = sizeof(arr) / sizeof(arr[0]);
    
        //获取键盘输入
        printf("请输入%d个整数
    ", n);
        for (int i = 0; i < n; i++)
        {
            scanf("%d", &arr[i]);
        }
    
        //求平均值
        int sum = 0;
        for (int i = 0; i < n; i++)
        {
            //累加每个元素的值
            sum += arr[i];
        }
        printf("arr数组的平均值:%d
    ", sum/n);
    
        //求最大值
        int max = arr[0];
        for (int i = 0; i < n; i++)
        {
            if (max < arr[i])
            {
                max = arr[i];
            }
        }
        printf("max= %d
    ", max);
    
    
        //求最小值
        int min = arr[0];
        for (int i = 0; i < n; i++)
        {
            if (min > arr[i])
            {
                min = arr[i];
            }
        }
        printf("min= %d
    ", min);
        return 0;
    }
    

    元素互换

    一位数值数组 逆置 (前后元素交换位置)

    图示

    代码示例

    #include <stdio.h>
    
    int main() {
        int arr[5] = { 0 };
        int n = sizeof(arr) / sizeof(arr[0]);
    
        //获取键盘输入
        printf("请输入%d个int数据:
    ", n);
        for (int i = 0; i < n; i++)
        {
            scanf("%d", &arr[i]);
        }
    
        //交换
        for (int i = 0, j = n-1 ; i < j; i++, j--)
        {
            int tmp = 0;
            tmp  = arr[i];
            arr[i] = arr[j];
            arr[j] = tmp;
        }
    
        //遍历
        for (int i = 0; i < n; i++)
        {
            printf("%d ", arr[i]);
        }
        printf("
    ");
        return 0;
    }
    
  • 相关阅读:
    论文画图问题
    迁移sql2005到sql2008r2
    JDBC复习要点总结
    巧用 MDC 打出漂亮的日志
    使用 LogCaptor 测试 Logging
    Spring3.0.4 学习与问题总结系列 1开场篇
    初探CSS
    VirtualBox VM下安装CentOS6.4 (高手略)
    How to build runnable JARs with Spring dependencies using Maven
    ARC135 简要题解
  • 原文地址:https://www.cnblogs.com/Guard9/p/12905145.html
Copyright © 2020-2023  润新知