1. 能通過*位址*找到所需的變數單元,此位址稱為指標。
2.有乙個*變數*專門用來存放另一變數的位址(即指標),則稱它為指標變數。
*型別名 指標變數名
char *pa;//定義乙個指向字元型的指標變數
int *pb;//定義乙個指向整型的指標變數
注:避免訪問未初始化的陣列
1.取位址運算子(&):獲取某個變數的位址。
例:char *pa=&a; //a為乙個變數,使用之前需定義
2.取值運算子( *):訪問指標變數指向的資料。
例:printf("%c\n",*pa);
3.%p表示列印位址資料型別。
1.指標法:對比標準下標法間接訪問陣列元素(同樣的方法也可以訪問陣列)
注:a.char乙個位元組,int/float四個位元組,double八個位元組
b.p=a相當於p=&a[ ]
c. * (p+1)並不是簡單的將位址加1,而是指向陣列的下乙個元素
a.指標陣列
(1)指標陣列是乙個陣列,每個陣列元素存放乙個指標變數。
例:int *p1[5]
b.陣列指標
)#include
int main()
;int (*p2)[5]=&temp;//陣列當做乙個整體,取出這個陣列的位址
int i;
for(i=0;i<5;i++)
//表示這個陣列的位址加i再取出它的值
retur n 0;
}
利用下標獲取指標的數值
1 當定義乙個指標資料之後 int p 通過 p 獲取指標指向的資料。2 當指標指向乙個陣列的時候,int p int a 3 p a 因為陣列名就是指向陣列第乙個數值的位址。如下 int main p a printf a 1 is d n a 1 printf p 1 is d n p 1 pr...
指標 1的討論
ww 原則 指標的加操作,是指標對應資料型別的大小的加,比如 char p p p sizeof char p 1 int p p p sizeof int p 4 因此在上面的例子中 int ptr int a 1 a是指向a的指標,當把 的時候,這個指標需要加上sizeof a 的值,因此 的結...
指標 1的問題
指標 1 並不是指標代表的位址值 1.char a a char p a cout void p void p 1 輸出 0012ff33 0012ff34 p指向的是乙個字元,p 1就是移動乙個字元大小,乙個字元就是乙個位元組,所以p 1 代表的位址就比 p 代表的位址大1。int i 1 int...