數(shù)組和指針

數(shù)組和vector的區(qū)別

數(shù)組的長(zhǎng)度固定玫芦。數(shù)組不提供size和push_back操作槽华。

數(shù)組的操作

用vector訪問元素時(shí)阅茶,下標(biāo)的類型是vector<T>::size_type,而數(shù)組下標(biāo)應(yīng)該是size_t吹榴。

迭代器和指針的區(qū)別

指針用于指向單個(gè)對(duì)象暖哨,而迭代器只能用于訪問容器內(nèi)的元素肌厨。指針是數(shù)組的迭代器培慌。

string s("hello world");
string *sp = &s;
vector<string> str(10,"hi!");
vector<string>::iterator iters =str.begin();

指針的操作

(1)定義和初始化:盡量初始化,若不指向某特定對(duì)象柑爸,則應(yīng)該賦給0值吵护。C語言中的預(yù)處理器變量NULL就是0值,定義在cstdlib頭文件中表鳍。

int ival = 1024; int *pi = &ival;
int *pi1 = 0;
int *pi2 = NULL;
int *pi3 = pi;

(2)void* 指針:表示該指針和一個(gè)地址值相關(guān)馅而,但不清楚存儲(chǔ)在此地址上的對(duì)象的類型。
(3)給指針賦值和通過指針進(jìn)行賦值:一個(gè)是通過指針修改指向地址上的元素值譬圣,一個(gè)是修改指針指向的地址瓮恭。

*sp = "Good Bye";
sp = &ival;

(4)引用和指針的區(qū)別:引用始終指向某個(gè)對(duì)象,定義時(shí)必須初始化胁镐。給引用賦值修改的是該引用所關(guān)聯(lián)的對(duì)象的值偎血。

int &ri = ival;int &ri2 = ival2;
ri = ri2;

(5)指向指針的指針:ppi指向指針變量pi的存儲(chǔ)地址,pi指向int變量ival的地址盯漂。對(duì)ppi取引用颇玷,即取出ppi指向的地址存放的變量值,即取出指針pi就缆。即pi2跟pi一樣也指向ival變量帖渠。

int ival = 1024; int *pi  = &ival;
int **ppi = π
int *pi2 = *ppi;

(6)指向數(shù)組的指針:指向該數(shù)組的第一個(gè)元素ia[0]。若一個(gè)指針指向數(shù)組元素竭宰,則可以用下標(biāo)操作指針空郊。

int *p = &ia[2];
int j = p[1]; //ia[3],p[1] = *(p+1)
int k = p[-2];//ia[0]

5.指向const對(duì)象的指針:cptr本身是可以改變的,可以指向另一個(gè)const對(duì)象切揭。cptr指向的const對(duì)象不可以用*cptr來修改狞甚,cptr指向的非const對(duì)象可以用別的非const指針修改。cptr其實(shí)是自以為指向const對(duì)象的指針廓旬。

const double *cptr;

const指針

const指針本身的值不能修改哼审。但它指向的對(duì)象值可變,只是該指針始終指向一個(gè)地址。

int *const curErr = &ival;

指針和typedef

typedef string *pstring;//pstring是指向string類型的指針類型
const pstring cstr;//cstr是指向string類型對(duì)象的const指針 
string *const cstr;

C風(fēng)格字符串

字符串字面值的類型就是const char類型的數(shù)組涩盾。并且以null作為結(jié)尾十气,自動(dòng)添加到末尾。標(biāo)準(zhǔn)庫:包含頭文件#include<cstring>春霍。

char ca1[] = {'C','+','+'};
char ca2[] = "C++";
char* cp = ca2;
char* cp = "C++";

數(shù)組類型的限制

數(shù)組長(zhǎng)度固定不變砸西,編譯時(shí)必須知道其長(zhǎng)度,數(shù)組只在定義它的塊語句中存在址儒。

動(dòng)態(tài)數(shù)組

在編譯時(shí)不知道數(shù)組長(zhǎng)度芹枷,要在程序運(yùn)行時(shí)才知道,因此需要?jiǎng)討B(tài)數(shù)組离福。
只需要指定類型和數(shù)組長(zhǎng)度杖狼,不需要命名數(shù)組,new分配空間返回的是指向數(shù)組的第一個(gè)元素的指針妖爷。這時(shí)new是在free store中分配了一塊內(nèi)存空間蝶涩,沒有名字,只能用它的地址間接訪問他絮识,而且這個(gè)數(shù)組會(huì)始終存在直到釋放他绿聘。如果不釋放,會(huì)使內(nèi)存耗盡次舌,導(dǎo)致內(nèi)存泄露熄攘。

int *pia = new int[10];
delete [] pia;

不允許用string對(duì)象初始化字符指針

但是提供了另外的成員函數(shù)c_str()

const char *str = st.c_str();

多維數(shù)組

就是數(shù)組的數(shù)組。ia[row][column],第一維是行彼念,第二位是列挪圾。
指針和多維數(shù)組:ia是指向第一個(gè)內(nèi)層數(shù)組的指針,即這里的ia不是指向一個(gè)元素而是指向一行元素逐沙,指向一個(gè)數(shù)組哲思。

int ia[3][4];
int (*ip)[4] = ia;//ip是一個(gè)指向含有4個(gè)元素的數(shù)組的指針
ip = &ia[2];//ia[2]是個(gè)指針,指向第三層內(nèi)層元素的指針
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末吩案,一起剝皮案震驚了整個(gè)濱河市棚赔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌徘郭,老刑警劉巖靠益,帶你破解...
    沈念sama閱讀 218,036評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異残揉,居然都是意外死亡胧后,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門抱环,熙熙樓的掌柜王于貴愁眉苦臉地迎上來绩卤,“玉大人途样,你說我怎么就攤上這事”舯铮” “怎么了?”我有些...
    開封第一講書人閱讀 164,411評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵陶夜,是天一觀的道長(zhǎng)凛驮。 經(jīng)常有香客問我,道長(zhǎng)条辟,這世上最難降的妖魔是什么黔夭? 我笑而不...
    開封第一講書人閱讀 58,622評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮羽嫡,結(jié)果婚禮上本姥,老公的妹妹穿的比我還像新娘。我一直安慰自己杭棵,他們只是感情好婚惫,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著魂爪,像睡著了一般先舷。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上滓侍,一...
    開封第一講書人閱讀 51,521評(píng)論 1 304
  • 那天蒋川,我揣著相機(jī)與錄音,去河邊找鬼撩笆。 笑死捺球,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的夕冲。 我是一名探鬼主播氮兵,決...
    沈念sama閱讀 40,288評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼耘擂!你這毒婦竟也來了胆剧?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,200評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤醉冤,失蹤者是張志新(化名)和其女友劉穎秩霍,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蚁阳,經(jīng)...
    沈念sama閱讀 45,644評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡铃绒,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了螺捐。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片颠悬。...
    茶點(diǎn)故事閱讀 39,953評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡矮燎,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出赔癌,到底是詐尸還是另有隱情诞外,我是刑警寧澤,帶...
    沈念sama閱讀 35,673評(píng)論 5 346
  • 正文 年R本政府宣布灾票,位于F島的核電站峡谊,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏刊苍。R本人自食惡果不足惜既们,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望正什。 院中可真熱鬧啥纸,春花似錦、人聲如沸婴氮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽莹妒。三九已至名船,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間旨怠,已是汗流浹背渠驼。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留鉴腻,地道東北人迷扇。 一個(gè)月前我還...
    沈念sama閱讀 48,119評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像爽哎,于是被迫代替她去往敵國和親蜓席。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1.c語言中课锌,有時(shí)需要使用只讀數(shù)組厨内,也就是程序從數(shù)組中讀取數(shù)值,但是程序不向數(shù)組中寫數(shù)據(jù)渺贤,在這種情況下聲明并初始化...
    田亢閱讀 852評(píng)論 0 0
  • 1.語言中變量的實(shí)質(zhì) 要理解C指針雏胃,我認(rèn)為一定要理解C中“變量”的存儲(chǔ)實(shí)質(zhì), 所以我就從“變量”這個(gè)東西開始講起吧...
    金巴多閱讀 1,772評(píng)論 0 9
  • 二維數(shù)組 二維數(shù)組在概念上是二維的志鞍,有行和列瞭亮,但在內(nèi)存中所有的數(shù)組元素都是連續(xù)排列的,它們之間沒有“縫隙”固棚。以下面...
    凡眼觀世界閱讀 500評(píng)論 0 1
  • 1统翩、一個(gè)數(shù)組仙蚜,各元素都是指針變量,每元素保存一個(gè)地址厂汗,這樣的數(shù)組稱為指針數(shù)組委粉。 定義指針數(shù)組:int *r[3];...
    滕王閣序閱讀 334評(píng)論 0 2
  • 數(shù)組指針(也稱行指針) 定義 int (*p)[n];()優(yōu)先級(jí)高,首先說明p是一個(gè)指針面徽,指向一個(gè)整型的一維數(shù)組艳丛,...
    Micason閱讀 193評(píng)論 0 1