ⅰ 作用:利用指標,可以直接處理記憶體中各種資料結構的資料,特別是陣列,字串。靈活,正確運用指標,可以提高程式的執行效率,編寫出精煉而高效的程式。
指標變數必須先定義,後使用。
定義的一般形式為 : 資料型別識別符號 *指標變數名;
int * p
double * d
char * pc
ⅱ注意:1,指標變數資料型別必須與所賦值的變數型別一致;
如,float y; int * p; p=&y; (這是錯的)
2,不允許把乙個數(常量)賦予指標變數(指標變數只能存放變數位址)
如,int * p; p=333(錯的)
3,被賦值的指標變數前不能再加 「 * 」 說明符,寫為 * p=&a 這是錯誤的,但對於在定義指標的同時賦值是允許的,如,int * p=&a; 實際可分解為兩步,int * p;p=&a;
4,可以將指標變數初始化為空值null,如,p=null;
5,同型別的指標變數可以相互賦值, int a,*pa=&a,*pb; pb=pa;
ⅲ &,* 都是具有右結合性的單目運算子,且優先順序相同,
在執行語句**現,
&:表示取指標變數的位址;
*:表示取指標變數所指向的變數的值;
int *px,x,y,*p; px=&x; y=*px;
在變數定義**現,
&:表示本語句定義乙個引用,如:
int y; int &x=y;//定義x為變數y的引用;
*:表示本語句定義乙個指標變數,如,
int *px;
注,&後面只能是乙個變數或陣列元素,不能是表示式;*後面只能是位址;
ⅳ 辨別,&*p,&a, p,*p
由於,&, * 都是具有右結合性的單目運算子,且優先順序相同,所以,& * p,先 * 與p結合,再執行&運算,因此,&*p=&a=p
p是表示變數a的位址,而,*p是表示變數a的值;
ⅴ特殊的指標;
㈠指向常量的指標:宣告指標時,可以使用const 指定,該指標指向的值不能改變。一般形式為,const 資料型別識別符號 * 指標變數名;或者:資料型別識別符號 const * 指標變數名。即,使用該指標時,可以改變指向,但,不能通過該指標改變所指目標的值。例:
int s=23,d=24;
const int *p=&s;
*p=90; //錯誤,這種利用指向常量的指標改變它所指向的值的操作是錯誤的;但可以對s進行任意操作;
s=21; //正確
p=&d; //正確,可以改變指向,
注;普通指標不能指向常變數。指向常量的指標既能指向普通變數,也能指向常變數,而,普通指標只能指向普通變數,不能指向常變數。例:const int xn=8;
int *p;
p=&x; //錯誤
const int *q;
q=&x; //正確
㈡指標常量:一般形式,
資料型別識別符號 *const 指標常量名=變數位址;例如:
int x;
int y=34;
int *const p=&x;
*p=12; //正確
p=&y; //錯誤
指標常量只能永遠指向初始化時設定的目標,不能指向其他目標。但,由於x是個變數,所以,在程式中通過指標常量來修改所指目標值時允許的,即,「*p=12」是正確的。
㈢void型別的指標:一般形式:
void * 指標變數名;
可以將任意型別資料的位址賦給void型別的指標變數;經過強制型別轉換,void型別指標可以訪問任何型別的資料。
例,int a=123;
int *p1;
void *p2;
p2=&a; //將int型別變數a 賦給p2
p1=(int *)p2; //經過強制轉換,將p2賦值給p1
㈣二級指標:存放著另乙個指標變數的位址,則稱這個指標為二級指標變數。
定義形式,資料型別識別符號 **二級指標變數名;例 :int a=22;
int *p=&a;
int **pp=&p;
**pp=1;
cout<輸出a=1。
指標的一些總結
2016年9月14日 指標陣列和陣列指標 指標陣列是指 陣列元素都是指標 int ptr 5 int a 2,b 3,c 6,p,q p a q b ptr 0 a 存入的是a的位址 ptr 1 b ptr 2 c cout ptr 0 ptr 0 endl cout ptr 1 ptr 1 end...
關於指標的一些總結
指標和陣列一樣,都是基於其它型別的。指標的宣告 int p updates 運算子兩邊的空格是可選的。對每個指標變數命名,都需要乙個 變數名,為取址,它的值為變數的位址 32位 指標變數,為指標儲存的位址所儲存的值。可以通過改變它來改變。malloc 可以分配記憶體,但c 更好的方法是使用new。i...
const 指標的一些總結
前兩天在網上看到華為的一些筆試題,對基礎的掌握仍然是這種大公司所重視的。其間對指標掌握的要求比較多,有一道是關於const指標的。看到那道題,回來整理了一些有關const指標的內容,分享一下。const說明指標變數,組合的情況可能會顯得很複雜。使用指標時要涉及兩個目標,即指標本身和指標所指的物件。關...