数组的使用

来源:互联网 发布:转置矩阵的性质 编辑:程序博客网 时间:2024/04/30 05:58

一 初始值

对于数组,尽量在申明的时候就赋初值(C++不会自动赋初值的),否则容易使用未初始化的变量,如:

  1.     int a[10];
  2.     for(int i=0;i<10;i++)
  3.     {
  4.         cout<<a[i]<<endl;
  5.     }

 

结果让你摸不清方向。

对于字符数组(数组名有指针的功能)则更应当这样,由于C++继承了C的字符处理方式(char *),字符串以'/0'结尾。所以如果不初始化的话,有可能就会引用不属于自己的内存,可以这样试下:

  1.     char p[20];
  2.     for(int i=0;i<20;i++)
  3.     {
  4.         cout<<*(p+i);
  5.     }

 

打印出来20个字符,有空的,也有非空的(看不懂的字符);

如果换成这样,很有可能打印一大堆字符:

  1.     char p[20];
  2.     cout<<p;

两种初始化的方法:

1 char p[20]={0};

2 memset(p,0,20);

 

二 数组越界

C++不支持数组越界检查,所以引用了别的内存也不会编译出错:

  1.     char p[20];
  2.     memset(p,98,20);
  3.     for(int i=0;i<25;i++)
  4.     {
  5.         cout<<*(p+i);
  6.     }