zoukankan      html  css  js  c++  java
  • C++学习(十五)(C语言部分)之 数组二

     

    数组大纲

     

    多维数组
    二维数组 重点 (三位以上基本不会用到)
    都是用来存数据

    一个班有20个人 可以用一维数组存20个人的年龄
    int age[20];
    一个年级10个班 每个班20人
    int age[10][20];//二维数组
    一个学校 6个年级 每个年级10个班 每个班20人 一个年级作为一个元素
    int age[6][10][20];//三维数组

    定义时 后面有多少个[]就是几维数组

    二维数组 数组的数组
    --->数组元素 也是数组
    age[0][1][2] 0年级的1班学号是2的同学
    age[0] 0粘结
    gae[0][1] 0年级1班
    age 三维数组
    age中的元素---> age[0] age[1] age[2] age[3] age[4]

    越界 用到了数组外面的内容 不属于你的地方 没人可以管 会出问题
    数组大小不确定时 可以稍微大一点点

    测试代码

      1 /*
      2 字符串后面 才有
      3 
      4 字符串的末尾 
      5 char arr[10]; //字符数组
      6 
      7 字符串一般存放在字符数组中
      8 */
      9 
     10 #include<stdio.h>
     11 #include<string.h>//用函数strlen时要用到
     12 
     13 int main()
     14 {//一维数组复习
     15 #if 0
     16     char arr[100] = "hello world"; //还有很大的空间没有存放数据
     17     char brr[4] = {'a','b','c'};//相当于赋值“abc” 空间大小为4 多出来的一位默认赋值为0 而在ASCII中 /0就是 0
     18     char crr[] = "123456";//定义的是后赋值 才可以省略大小 (有效无效字符都要存进去)
     19 
     20     printf("%s
    ",brr);
     21     printf("%d
    ",sizeof(arr));//求数组大小 (单位字节)
     22     printf("%d
    ", strlen(arr));//字符串长度 长度是算到为止的个数
     23     //strlen 字符串的有效长度 算到为止
     24     scanf("%s",arr);//数组名 不需要取地址符 scanf中间有空格 会当成两个字符串
     25     gets_s(arr, 100);//100 字符串长度最多能到100  gets专门用于字符串数组的输出
     26     gets(arr);
     27     //回车作为结束
     28     puts(arr);//专门用于字符串的输出
     29     printf("输入的内容是%s",arr);//输出
     30 
     31 #endif
     32 
     33 //多维数组
     34     /*
     35     多维数组
     36      二维数组 重点 (三位以上基本不会用到)
     37     都是用来存数据
     38 
     39     一个班有20个人 可以用一维数组存20个人的年龄
     40     int age[20];
     41     一个年级10个班   每个班20人
     42     int age[10][20];//二维数组
     43     一个学校 6个年级 每个年级10个班 每个班20人 一个年级作为一个元素
     44     int age[6][10][20];//三维数组
     45 
     46     定义时  后面有多少个[]就是几维数组
     47     
     48     二维数组 数组的数组
     49     --->数组元素 也是数组
     50     age[0][1][2]  0年级的1班学号是2的同学
     51     age[0]  0粘结
     52     gae[0][1]  0年级1班
     53     age  三维数组
     54       age中的元素---> age[0] age[1] age[2] age[3] age[4]
     55 
     56       越界 用到了数组外面的内容 不属于你的地方 没人可以管 会出问题
     57       数组大小不确定时 可以稍微大一点点
     58     */
     59 #if 1
     60     //int dArr[10][20];//一般前面的10称为行 后面的20称为列
     61     //for (int i = 0; i < 10; ++i)
     62     //{
     63     //    for (int j = 0; j < 20; ++j)
     64     //    {
     65     //        dArr[i][j] = i*j;
     66     //    }
     67     //}
     68     //for (int i = 0; i < 10; ++i)//先行
     69     //{
     70     //    for (int j = 0; j < 20; ++j)//后列
     71     //    {
     72     //        printf("%d	",dArr[i][j]);
     73     //    }
     74     //    printf("
    ");
     75     //}
     76 
     77     
     78     
     79     //test[i][j] 和 test[i][j+1] 地址 相差4个字节(一个int大小)
     80     //test[i][j] 和 test[i+1][j] 地址 相差16个字节(一行的大小 4个int大小)
     81     //本质二维数组存放方式和一位数组无异 但是他得使用方式不一样
     82     //地址是一样的 类型是不一样的 使用方式也不一样
     83     //&arr和&arr[0]的数据类型不一样 但是存的内容是一样的
     84     int test[3][4];
     85     for(int i = 0; i < 3 * 4; ++i)
     86     {
     87         test[0][i] = i;
     88     }
     89     for (int i = 0; i < 3; ++i)
     90     {
     91         for (int j = 0; j < 4; ++j)
     92         {
     93             printf("%d	",test[i][j]);
     94             printf("%p	",&test[i][j]);//%p 打印地址 是16进制
     95         }
     96         printf("
    ");
     97     }
     98 
     99 #endif
    100     
    101     
    102     while (1);//防止闪屏
    103     getchar();
    104     return 0;//表示函数结束
    105 }

    2018-07-17 17:31:02

  • 相关阅读:
    USACO2008 Cow Cars /// oj23323
    USACO2008 Roads Around The Farm /// queue oj23321
    USACO2007 捕牛记 /// queue+桶 oj1503
    哈理工多校算法赛一
    USACO2012 Haybale stacking /// 区间表示法 oj21556
    USACO2012 Broken necklace /// DP oj10103
    USACO2004 cube stacking /// 带权并查集 oj1302
    ACM-ICPC 2018 南京赛区网络预赛 J sum (找一个数拆成两个无平方因子的组合数)
    分层图 (可以选择K条路的权为0,求最短路)
    POJ 3537 Crosses and Crosses(sg博弈)
  • 原文地址:https://www.cnblogs.com/Yuuki-/p/9321583.html
Copyright © 2011-2022 走看看