陣列與指標

2021-08-31 19:09:29 字數 2741 閱讀 9522

如: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元素的陣列。其實這兩種寫法主要是因為運算子的優先...