數(shù)組定義與初始化
數(shù)組名是一個(gè)常量,它代表著數(shù)組元素在內(nèi)存中的起始地址。數(shù)組可以是一維數(shù)組也可以是N維數(shù)組,最常用的是一維數(shù)組和二維數(shù)組
數(shù)據(jù)類(lèi)型? ?數(shù)組名 [常量表達(dá)式 1 ]?[常量表達(dá)式 2 ] ......[常量表達(dá)式 N ];
數(shù)組的容量在定義時(shí)就必須固定,C++不存在動(dòng)態(tài)定義大小的數(shù)組匆骗,例如下面這種就是錯(cuò)誤的
int num;
cin >> num >> endl;
int a [num];
數(shù)組的初始化和定義與C沒(méi)有太大差別
二維數(shù)組定義如下
float array [2] [3] ;? //定義一個(gè)2X3的浮點(diǎn)型數(shù)組
初始化與一維數(shù)組相同
float array [2] [3] = { 1,2,3,4,5,6 };
還可以采取分行賦值的方式
float array [2] [3] = { { 1,2,3 } , { 4,5,6 } };
對(duì)于數(shù)組容量較大的情況,可以選擇其中部分元素進(jìn)行賦值
float array [2] [3] = { { 1 } , { 4 } };
也可以跳過(guò)某行對(duì)其他行賦值
float array [2] [3] = { {? } , { 4 } };
也可以省略一維的賦值
float array [ ] [3] = { 1,2,3,4,5,6 };
數(shù)組與指針
引用數(shù)組中的元素可以使用下標(biāo)誉简,還有一種更經(jīng)濟(jì)高效的做法就是使用指針
int a [10] = { 1,2,3,4,5,6,7,8,9 };
int * p = a;?
* p++碉就、*(p++)與 *(++p) 的比較
#include<iostream>
using namespace std;
int mian (int? argc, char* argv [ ] ) {
? ????? int a?[10] = { 0,1,2,3,4,5,6,7,8,9 };
? ????? int * p;
? ????? p = &a [0];
? ? ????cout << * (p++) << endl;
? ? ????p = &a [0];
? ????? cout << * p++ << endl;
? ????? p = &a [0];
? ????? cout << * (++p) << endl;
????????return 0;
}
結(jié)果如下:
0
0
1
Press any key to continue_
如果 p 當(dāng)前指向數(shù)組 a 中的第i個(gè)元素,那么將有如下結(jié)論:
1闷串,* (- -p) 與 a[ - -i ] 的作用相同瓮钥,p 先自減,再做 * 運(yùn)算
2烹吵,* (p- -) 與 a[ i- - ] 的作用相同碉熄,先進(jìn)行 * p 運(yùn)算,p 再自減
3年叮,* (++p) 與 a[ ++i ] 的作用相同具被,p 先自加,再做 * 運(yùn)算