• 数组


    【1】为什么引入数组?

    实际编程中,我们有可能会面临这样子的问题,需要定义很多的变量,而且这些变量的类型都是相同的,例如:

    int a,b,c,d,e,f......;

    那么,矛盾总是推动着事物向前发展进步的根本动力。程序设计语言也不例外,同时遵循这个客观的规律。

    所以,为了更简练,更清晰的模拟描述这一系列数据的表示,我们的前辈们想到了数组。例如:

    int a[5]; //a[0] a[1] a[2] a[3] a[4]分别代表不同的变量,但是都是同一个数据类型的。让别人看上去一目了然,更有利于以后的程序维护。

    【2】数组的定义规则如何?

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

    int  array[100];

    【3】数组的下标为什么从零开始?

    计算机编程语言都是由西方引进的,大家都知道,西方人的胸前都喜欢佩戴一个十字架什么的。

    其实这个十字架很有内容的,还记得不?中国曾经的那些老木匠都用木质的十字架,为了什么呢?为了能够准确,甚至说是精确。

    数组的下标除了区分不同元素而外,设计者也赋予了它特别的用途,那就是偏移量的重要意义。

    a[0]代表的就是*a ,那么,为了更准确的描述,*(a+1) == a[1]这样子的效果是很容易理解的。

    【4】数组可以分为哪几种?

    数值数组,字符数组,指针数组,结构数组等等

    【5】数组指针与指针数组什么区别?

    数组指针:int (*pa)[10] pa就是所谓的数组指针变量名。即就是说pa是一个指针变量。

    指针数组:int * pa[10] pa就是所谓的指针数组变量名。即就是说pa是一个数组变量名。

    【6】数组名是什么类型

    数组名是一个数组类型的指针,也就是数组首元素的指针。

    例如:

    1 int ar[10];
    2 
    3 int *p=ar;

    【7】如何创建多维数组?

    示例代码如下:

     1 #include<iostream>
     2 using namespace std;
     3 int main()
     4 {
     5     int (*p)[3][4];
     6     int i,j,k;
     7     p = new int[2][3][4];
     8     for(i=0;i<2;i++)
     9     {
    10         for(j=0;j<3;j++)
    11         {
    12             for(k=0;k<4;k++)
    13             {
    14                 *(*(*(p+i)+j)+k) = i*100+j*10+k;
    15             }
    16         }
    17     }
    18     for(i=0;i<2;i++)
    19     {
    20         for(j=0;j<3;j++)
    21         {
    22             for(k=0;k<4;k++)
    23             {
    24                 cout<<p[i][j][k]<<"  ";
    25             }
    26             cout<<endl;
    27         }
    28     }
    29     delete []p;
    30     return 0;
    31 }

    【8】杨辉三角如何利用数组输出?

    示例代码如下:

     1 #include<iostream>
     2 #include<assert.h>
     3 #include<iomanip>
     4 #include<conio.h>
     5 using  namespace std;
     6 void main()
     7 {
     8     const int MaxN=11;
     9     int a[MaxN][MaxN];                             //数组11行11列,0行0列不用
    10     for(int i=1;i<MaxN;i++)
    11     {
    12         a[i][1] = 1;
    13         a[i][i] = 1;
    14         for(int j = 2; j < i; j++)
    15         a[i][j]=a[i-1][j-1]+a[i-1][j];
    16     }
    17     for(int i = 1; i < MaxN; i++)                           //显示结果
    18     {
    19         cout<<setw((MaxN-i)*4);
    20         for(int j = 1; j <= i; j++)
    21         cout<<a[i][j]<<setw(8);
    22         cout<<endl;
    23     }
    24     getch();
    25 }

    运行结果如下:

    【9】乘法口诀如何利用数组输出?

    示例代码如下:

     1 #include<iostream>
     2 using  namespace std;
     3 void  main()
     4 {
     5     for(int i=1;i<10;i++)
     6     {
     7         for(int j=1;j<i+1;j++)
     8         {
     9             cout<<j<<"*"<<i<<"="<<i*j<<" ";
    10         }
    11         cout<<endl;
    12     }
    13 }

    运行结果如下:

    【10】

    作者:kaizen
    声明:本文版权归作者和博客园共有,欢迎转载。但未经作者同意必须保留此声明,且在文章明显位置给出本文链接,否则保留追究法律责任的权利。
    签名:顺序 选择 循环
  • 相关阅读:
    saltstack高效运维
    python与RPC服务
    01-08-01【Nhibernate (版本3.3.1.4000) 出入江湖】NHibernate中的一级缓存
    01-08-01【Nhibernate (版本3.3.1.4000) 出入江湖】NHibernate中的三种状态
    01-07-01【Nhibernate (版本3.3.1.4000) 出入江湖】并发控制
    01-06-01【Nhibernate (版本3.3.1.4000) 出入江湖】事务
    01-05-01-2【Nhibernate (版本3.3.1.4000) 出入江湖】立即加载实现--NHibernateUtil.Initialize()和添加fetch关键字的HQL查询
    01-05-01-1【Nhibernate (版本3.3.1.4000) 出入江湖】延迟加载及其class和集合(set、bag等)的Lazy属性配置组合对Get和Load方法的影响
    01-01-01【Nhibernate (版本3.3.1.4000) 出入江湖】配置文件
    【log4net】配置文件
  • 原文地址:https://www.cnblogs.com/Braveliu/p/2841480.html
Copyright © 2020-2023  润新知