数组

数组
1. 定义一个一维数组:int a[10];
这个数组一共10个元素,下标分别为0~9。访问某个元素时,直 a加方括号,如 a[5]。
2. 定义一个二维数组:int b[5][3];
这个数组一共5 3=15个元素,分别是 b[0][0]、b[0][1]、b[0][2]、b[1][0]……b[4][2]。
访问某个元素时要用两个方括号,如b[2][1]。
多维数组的定义和使用方法与此类似。
3. 数组名和元素的寻址:以上面的 a、b为例 数组名是一个指针,指向整个数组第一个元素所在的地址。如a就是&a[0]、b就是&b[0][0]。 多维数组的本质是数组的数组,所以b[0]实际上是 b[0][0]、b[0][1]……的数组名,b[0]就是
&b[0][0]。 在内存中,数组中每个元素都是紧挨着的,所以可以直接进行指针的运算。如a+3 就是&a[3],**(b+1)
就是b[1][0],*(*(b+3)+2)就是b[3][2]。 在竞赛中要尽可能回避这些功能。
4. 字符串: 字符串实际上是char 的数组。 字符串最后一位必须是'\0',否则会在进行输出、使用字符串函数时发生意外。 数组,包括字符串,不可以整体地赋值和比较。如果需要,应使用memcpy和memcmp(字符串是strcpy
和strcmp)。
5. C++中数组的下标只能从0 开始(当然可以闲置不用),并且 int a[10]中 a的最后一个元素是 a[9],
不是a[10]!
6. C++不检查数组下标是否越界!如果下标越界,程序很有可能会崩溃!

下面就以一维数组为例,简要地进行说明数组的常见应用。

例:第一行读入个数n,第二行读入n个数并保存在数组a中;输入:把这n个数反向输出。

 1 #include<iostream>  //头文件,因为输入cin,输出cout需要iostream 
 2 using namespace std;   //C++标准程序库中的所有标识符都被定义于一个名为std的namespace中
 3 int main()             //定义主函数,main 函数的返回值类型必须是 int  
 4 {
 5     int n,a[100001];   //定义变量 
 6     cin>>n;          //读入n 
 7     for (int i=1;i<=n;i++) cin>>a[i];    // 读入n个数 
 8     for (int i=n;i>=1;i--) cout<<a[i]<<' ';    //反向输出n个数,并用空格隔开 
 9 
10     return 0;          //主函数的返回值必须是0,否则在有些测试系统中会出错 
11 }

 

posted @ 2016-01-04 09:20  九江镇中  阅读(181)  评论(0编辑  收藏  举报