1. 程式人生 > >c++ 數組皇冠和體育平臺出租指針(vector和叠代器的低級復合類型)

c++ 數組皇冠和體育平臺出租指針(vector和叠代器的低級復合類型)

更改 平臺出租 amp 通過 follow code ref 下標 萬能

一、數組皇冠體育平臺出租 haozbbs.com Q1446595067

1.數組的缺點:數組的長度是固定的,無法改變大小;無法知道數組的大小;數組也不提供push_back等類型的操作,用下標進行操作有時候很麻煩;

2.數組的長度:必須是常量,不可以用變量寫入;常量必須是定義時就是常量,即使換算得到的也不可以用來定義數組;

3.數組的初始化:全局數組會自動初始化;局部數組不會自動初始化。

eg: char str1[]={‘c‘,‘+‘,‘+‘};
char str2[]={‘c‘,‘+‘,‘+‘,‘/0‘};

    char str3[]="c++";

4.數組的操作:(保證數組下標不會越界)

數組下標的定義:size_t

數組的賦值:每一個數據分別拷貝,不能直接對數組進行操作;

5.盡量使用vector(動態數組)來代替數組;

二、指針

1.指針的定義和初始化:

eg: sp=&s;//sp為指針,代表sp為指針,s為數組,&為取地址符(sp代表的是s的地址,*sp為sp地址的內容)

註:可以靠近變量或者類型寫均可,都表示這是一個指針;靠近類型時,定義的指針僅僅是靠近它的變量,其余均為變量;指針一般都要進行初始化;指針可以等於一個常量,但是不能等於變量,變量前必須要加取地址符(*sp只能等於0或者&s或者NULL);指針只能指向同類型的變量地址;

int ival=1024;

int ip=0;//表示指針不指向任何變量
int
ip2=&ival;//ip2中存的是ival的地址

ip=ip2;//ip和ip2均指向ival

2.萬能指針:void *pv=&s;//可以指向任何類型的對象,

註:運用的範圍較為窄小,僅僅在幾種特殊情況下進行使用:與另一個指針進行比較;向函數傳遞void指針或者從函數中返回void指針 ;向另外一個void*指針賦值。

3.指針和引用:引用(&s=sp)

區別:(1)指針可以先定義,之後在進行初始化;引用必須在聲明時進行初始化;

(2)指針通過賦值可以改變其指向的對象;但是引用不可更改,聲明初始化以後就不能進行改變;

4.指向指針的指針:int **pi=&ip2;

三、使用指針訪問數組

1.示例:

    int ia[]={2,4,5,6,87};
    int *ip=ia;

cout << ia <<endl;
cout<<
ip<<endl;
ip=&ia[4];
cout << *ip <<endl;

2.指針減法:兩指針相減,減法得到的是兩指針之間的距離;

eg: ptrdiff_t n=ip2-ip;

cout << n<< endl;

3.int laest=*(ip+4); //取出ip+4指向的內容

c++ 數組皇冠和體育平臺出租指針(vector和叠代器的低級復合類型)