如:int a[10],*p=a;
a為陣列名,陣列名代表陣列的首位址,即&a[0]
指標的算術運算
如:int a [10]=,*p=a,i;
cout<<*p; 結果:10
p++;
cout<<*p; 結果:20
p指向int型,因int型變數為4位元組長度,所以,p+1相當於p+4,同樣p+i相當於p+i*4
兩個同型別指標作減法運算
指標2-指標1==>整數(常用於計算兩個指標之間包含元素的個數)
#includeusing namespace std;
int main()
,*p1=a,*p2=a+2,i;
cout<指標的關係運算
即兩個指標可以比較大小
例:使用指標輸出陣列各元素的值
double x[5]=,*p;
for(p=x;p陣列元素的不同表示形式
int a[10],*ptr=a,i;
a[i]=*(a+i)=*(ptr+i)=ptr[i]
a[i]為陣列元素的下標法
*(a+i)為陣列元素的指標法
例:尋找a陣列中元素的最大值
二維陣列:int a[3][4],i,j;
int *p,max=a[0][0];
for(p=&a[0][0];p<&a[0][0]+12;p++)
if(*p>max)
max=*p;
cout<二維陣列的指標法表示
如:a[3][4]
a代表&a[0],即0行的位址
a+1代表&a[1],即1行的位址
a+2代表&a[2],即2行的位址
a[i]+j代表&a[i][j]
*(a[i]+j)等價於a[i][j]
* (* (a+i)+j)為二維陣列元素a[i][j]的指標法表示a為首行位址,a+i為i行的行位址,而*(a+i)為a的i行0列元素的位址,而*(a+i)+j為a的i行j列元素的位址
注:當p表示&a[0][0]時int a[3][4],*p=&a[0][0]
a[i][j]=*(p+i*4+j)
型別 (*指標變數)[m] (m表示二維陣列的列數)
例:利用行指標變數,按行輸出二維陣列各元素的值
int a[3][4]=,,},(*p)[4]; //直接宣告(*p)[4]
for(p=a;p與二維陣列不同
結果為b=5
#includeusing namespace std;
char *str(char *c,char b) //返回值為指標的函式,呼叫函式定義變數也得是指標
return null; //null必須全是大寫
}int main()
;
結構體型別 *指標變數名
訪問結構變數中的成員
格式1: (*指標變數).成員名
格式2: 指標變數->成員名(->為結構指向運算子)
例子:
struct date
; int main
,*p=d;
cout<<(*p).year;
coutreturn 0;
}
對於結構體陣列
struct button top[10],*p=top;
cin>>p->name; ->前為位址
cin>>p[0].name; .前為確定的元素*p等同於*(p+a)和p[a]
new運算子—用於動態申請所需的記憶體空間
指標變數=new 型別
動態申請單個變數:
動態申請乙個double型變數,初值為100.0
double *p;
p=new double;
*p=100.0
或 p=new double(100.0)
動態申請陣列
指標變數=new 型別[元素個數]
動態申請80個字元的陣列
char *str;
str=new char[80]
動態建立n個元素的一維整形陣列
#includeusing namespace std;
int main()
cout<<"請輸入n個數:";
for(int i=0;i>p[i];
}
delete運算子:釋放動態申請到的儲存空間
動態釋放單個變數:
delete 指標變數;
動態釋放陣列:
delete[ ]指標變數;
指標與陣列,指標陣列 陣列指標
int a 10 print n a p,a p a,a print n a 1 p,a 1 p a 1,a 1 a做乙個指標,步長為4,指向乙個元素,a做乙個指標,步長為40,指向乙個維陣列 int b 3 4 print n b p,b p,b p b,b,b print n b 1 p,b 1...
指標陣列與陣列指標
1.指標陣列 指標陣列中每乙個元素都是乙個指標,也既是存放字串的首位址。所以指標陣列適合處理若干個長度不等的字串。定義的一般形式為 型別說明符 指標陣列名 陣列長度 例如 int p 3 宣告乙個陣列,指標陣列p,由3個int型別指標變數元素組成 從運算子的優先順序分析,由於 的優先順序大於 所以p...
指標陣列與陣列指標
呵呵,實在是厭倦了繞口的解釋。指標陣列,故名思義,就是指標的陣列,陣列的元素是指標 陣列指標,同樣,就是直想陣列的指標。簡單舉例說明 int p 2 首先宣告了乙個陣列,陣列的元素是int型的指標。int p 2 宣告了乙個指標,指向了乙個有兩個int元素的陣列。其實這兩種寫法主要是因為運算子的優先...