• C语言数组


    #include <stdio.h>
    void printArray(int array[], int length)
    {
        for (int i = 0; i<length; i++)
        {
            printf("array[%d] = %d 
    ", i, array[i]);
        }
    }
    void printArrayAddr(int array[])
    {
         printf("array的地址是%p 
    ", array);
    }
    int main()
    {    /************************************************
          *
          *    使用数组注意事项:
          *
          *  正确写法
          *
          *    1、定义数组时进行初始化  int ages[5] = {10 , 11, 12, 67, 56};
          *    2、定义数组时,只初始化部分数组元素,其他的默认为0
          *       int ages[5] = {10, 11};
          *    3、定义数组时初始化指定下标的元素
          *       int ages[5] = {[3] = 10, [4] = 11};
          *    4、如果知道数组的大小定义数组时可以省略数组的大小
          *       int ages[] = {10, 11, 14};
          *    5、使用字符或者常量或者常量的运算结果作为数组的大小
          *       int ages['A'] = {10, 11, 12, 14, 16};
          *       int ages['A'- 50] = {10, 11, 12, 14, 16};
          *       int ages[60 - 50] = {10, 11, 12, 14, 16};
          *    6、数组的大小使用一个变量指定,但是此时不能对数组进行初始化
          *      int count = 5;
          *      int ages[count];
          *      ages[0] = 10;
          *      ages[1] = 11;
          *      ages[2] = 18;
          *
          *   错误写法:
          *
          *    1、没有标明数组的大小  int ages[];
          *    2、在声明数组后对数组进行初始化
          *       int ages[5];
          *       ages = {10, 11, 12, 14};
          *    3、数组的大小使用一个变量指定,并且对数组进行初始化
          *      int count = 5;
          *      int ages[count] = {10, 11, 12};
          *    4、使用类似其他语言声明数组的方法:
          *      int[5] ages;
          *
          *   计算数组的长度:
          *      int count = sizeof(ages)/sizeof(int);
          *   当一个函数的参数是数组时,如果我们传递一个数组名调用函数此时传递的是数组的地址,
          *   当我们在函数中对数组中相应位置的数据进行修改,此时修改的是数组中的数据
          *
          *   二维数组:二位数组可以看做是数组的数组,比如a[2][2]是由a[0]和a[1]组成,
          *   其中a[0]包含a[0][0],a[0][1],a[1]包含a[1][0],a[1][1].
          *
          ***************************************************/
    
          //1、定义数组时进行初始化  int ages[5] = {10 , 11, 12, 67, 56};
           printf("1、定义数组时进行初始化  int ages[5] = {10 , 11, 12, 67, 56};
    ");
           int ages[5] = {10 , 11, 12, 67, 56};
           printArray(ages,sizeof(ages)/sizeof(int));
           printf("
    ");
           //2、定义数组时,只初始化部分数组元素,其他的默认为0
           printf("2、定义数组时,只初始化部分数组元素ages2[5] = {10 , 11};,其他的默认为0
    ");
           int ages2[5] = {10 , 11};
           printArray(ages2,sizeof(ages2)/sizeof(int));
           printf("
    ");
           // 3、定义数组时初始化指定下标的元素 int ages[5] = {[3] = 10, [4] = 11};
           printf("3、定义数组时初始化指定下标的元素 int ages[5] = {[3] = 10, [4] = 11};
    ");
           int ages3[5] = {[3] = 10, [4] = 11};
           printArray(ages3,sizeof(ages3)/sizeof(int));
           printf("
    ");
           //4、如果知道数组的大小定义数组时可以省略数组的大小 int ages[] = {10, 11, 14};
           int ages4[] = {10, 11, 14};
           printf("4、如果知道数组的大小定义数组时可以省略数组的大小 int ages[] = {10, 11, 14};
    ");
           printArray(ages4,sizeof(ages4)/sizeof(int));
           printf("
    ");
          // 5、使用字符或者常量或者常量的运算结果作为数组的大小 int ages['A'] = {10, 11, 12, 14, 16};
           printf("使用字符或者常量或者常量的运算结果作为数组的大小 int ages['A' - 60] = {10, 11, 12, 14, 16};
    ");
           int ages5['A' - 60] = {10, 11, 12, 14, 16};
           printArray(ages5,sizeof(ages5)/sizeof(int));
           printf("
    ");
           //6、数组的大小使用一个变量指定,但是此时不能对数组进行初始化,如果有的数组元素没有初始化会出现不可预知的值
           printf("6、数组的大小使用一个变量指定,但是此时不能对数组进行初始化
    ");
           int count = 5;
           int ages6[count];
           ages6[0] = 10;
           ages6[1] = 11;
           ages6[2] = 18;
           printArray(ages6,sizeof(ages6)/sizeof(int));
           printf("
    ");
           printf("数组地址
    ");
           int addr[3] = {1,2,3};
           //数组名代表数组的地址
           printf("数组addr地址是:%p
    ",addr);
           printf("调用函数:
    ");
           printArrayAddr(addr);
           for (int i=0; i<3; i++)
           {
               printf("数组addr[%d]的地址是:%p
    ", i, &addr[i]);
           }
           printf("
    ");
           int barray[2][2] = {{1,2},{3,4}};
           printf("barray的地址是:%p
    ",barray);
           printf("barray[%d]的地址是:%p
    ", 0, barray[0]);
           printf("barray[0][0]的地址是:%p
    ", &barray[0][0]);
           printf("barray[0][1]的地址是:%p
    ",&barray[0][1]);
           printf("barray[1]的地址是:%p
    ",barray[1]);
           printf("barray[1][0]的地址是:%p
    ",&barray[1][0]);
        return 0;
    }
    1、定义数组时进行初始化  int ages[5] = {10 , 11, 12, 67, 56};
    array[0] = 10 
    array[1] = 11 
    array[2] = 12 
    array[3] = 67 
    array[4] = 56 
    
    2、定义数组时,只初始化部分数组元素ages2[5] = {10 , 11};,其他的默认为0
    array[0] = 10 
    array[1] = 11 
    array[2] = 0 
    array[3] = 0 
    array[4] = 0 
    
    3、定义数组时初始化指定下标的元素 int ages[5] = {[3] = 10, [4] = 11};
    array[0] = 0 
    array[1] = 0 
    array[2] = 0 
    array[3] = 10 
    array[4] = 11 
    
    4、如果知道数组的大小定义数组时可以省略数组的大小 int ages[] = {10, 11, 14};
    array[0] = 10 
    array[1] = 11 
    array[2] = 14 
    
    使用字符或者常量或者常量的运算结果作为数组的大小 int ages['A' - 60] = {10, 11, 12, 14, 16};
    array[0] = 10 
    array[1] = 11 
    array[2] = 12 
    array[3] = 14 
    array[4] = 16 
    
    6、数组的大小使用一个变量指定,但是此时不能对数组进行初始化
    array[0] = 10 
    array[1] = 11 
    array[2] = 18 
    array[3] = 5 
    array[4] = 4200756 
    
    数组地址
    数组addr地址是:0022fe58
    调用函数:
    array的地址是0022fe58 
    数组addr[0]的地址是:0022fe58
    数组addr[1]的地址是:0022fe5c
    数组addr[2]的地址是:0022fe60
    
    barray的地址是:0022fe48
    barray[0]的地址是:0022fe48
    barray[0][0]的地址是:0022fe48
    barray[0][1]的地址是:0022fe4c
    barray[1]的地址是:0022fe50
    barray[1][0]的地址是:0022fe50
  • 相关阅读:
    用户需求报告
    结队开发项目——七巧板NABC需求分析
    梦断代码读书笔记3
    课堂练习之环形二维数组
    结对开发之求最大子数组的溢出问题
    《代码之美》第二章读后感(一)
    软件工程项目冲刺阶段二:第五天
    软件工程项目冲刺阶段二:第四天(06-06)
    软件工程项目冲刺阶段二:第三天
    课程评价
  • 原文地址:https://www.cnblogs.com/heml/p/3528774.html
Copyright © 2020-2023  润新知