二維陣列與陣列指標以及指標陣列

2021-10-16 12:58:39 字數 3990 閱讀 7763

示例:

int buff[

3]=;

//每行有3個元素

int buff2[

3]=,

,};//部分初始化,陣列中未賦值的預設為0

int buff3[

3]=,

,,};

//初始化自動計算行數,陣列中未賦值的預設為0

int buff3[

3]=,

,,};

int buff[3]

[3];

//定義二維陣列直接限制行、列,未初始化成員為隨機值

};

注:此處舉例均為區域性二維陣列

int

main()

;//每行有3個元素

int i,j;

for(i=

0;i<

sizeof

(buff)

/sizeof

(buff[0]

);i++

)printf

("\n");

}}

#include

intmain()

;//每行有3個元素

int*p=buff[0]

;int i;

for(i=

0;i<

sizeof

(buff)

/sizeof

(int

);i++

)}

#include

void

tow_array

(int buff[

3],int line)

;int

main()

;//每行有3個元素

tow_array

(buff,

sizeof

(buff)

/sizeof

(buff[0]

));}

/************遍歷二維陣列*****************

****以陣列方式傳入,必須指定列寬

**int line -- 二維陣列行數

****************************************/

void

tow_array

(int buff[

3],int line)

printf

("\n");

}}

#include

void

tow_array

(int

(*buff)[3

],int line)

;int

main()

;//每行有3個元素

tow_array

(buff,

sizeof

(buff)

/sizeof

(buff[0]

));}

/************遍歷二維陣列*****************

****以陣列指標方式傳入,必須指定列寬

**int line -- 二維陣列行數

****************************************/

void

tow_array

(int

(*buff)[3

],int line)

printf

("\n");

}}

#include

intmain()

;//每行有3個元素

int(

*p)[3]

=buff;

printf

("*p[0]=%d\n"

,*p[0]

);//等價於buff[0][0]

printf

("*(p[0]+1)=%d\n",*

(p[0]+

1));

//等價於buff[0][1]

printf

("*p[1]=%d\n"

,*p[1]

);//等價於buff[1][0]

}

#include

void

tow_array

(int

(*buff)[3

],int line)

;int

main()

;//每行有3個元素

int*p[3]

;*p=buff[0]

; p[0]

=buff[0]

; p[1]

=buff[1]

; p[2]

=buff[2]

;printf

("%d\n",(

*p)[0]

);//等價於:p[0][0]

printf

("%d\n",(

*p)[1]

);//等價於p[0][1]

printf

("%d\n",*

(p[0]+

1));

//等價於p[0][1]

printf

("%d\n",*

(p+1)[

0]);

//等價於p[1][0],*(p+1)儲存buf[1][0]位址

printf

("%d\n",*

(*(p+1)+

1));

//等價於p[1][1]

}

注:二維陣列賦值給指標陣列時p=buff是錯誤的。

#include

void

tow_array

(char

**buff,

int line)

;int

main()

;tow_array

(buff,

sizeof

(buff)

/sizeof

(buff[0]

));}

/************遍歷二維陣列*****************

****以二維指標傳入

**int line -- 二維陣列行數

****************************************/

void

tow_array

(char

**buff,

int line)

}

示例二:

#include

void

tow_array

(int

**buff,

int line,

int row)

;int

main()

;//每行有3個元素

int*p[3]

;//將二維陣列賦值給指標陣列

for(i=

0;i<

sizeof

(buff)

/sizeof

(buff[0]

);i++

)tow_array

(p,sizeof

(buff)

/sizeof

(buff[0]

),3)

;}/************遍歷二維陣列*****************

****以二維指標傳入

**int line -- 二維陣列行數

**int row -- 二維陣列列

****************************************/

void

tow_array

(int

**buff,

int line,

int row)

}}

二維陣列 指標陣列與陣列指標

一 首先我們從字面意思理解一下什麼是指標陣列什麼是陣列指標 1 指標陣列 本質是乙個陣列,陣列中的每乙個元素是乙個指標。2 陣列指標 本質是乙個指標,而指標指向乙個陣列。二 我們該怎麼區分指標陣列和陣列指標?1 總共有三種表示形式 int p 4 和int p 4 和int p 4 表面看起來是不是...

指標陣列 陣列指標 二維陣列指標

指標陣列 如果乙個陣列中的所有元素儲存的都是指標,那麼我們就稱它為指標陣列。除了每個元素的資料型別不同,指標陣列和普通陣列在其他方面都是一樣的,下面是 乙個簡單的例子 include int main 也可以不指定長度,直接寫作 int parr 定義乙個指向指標陣列的指標 int parr arr...

陣列指標與二維陣列

陣列指標的概念一直就沒理解太清楚,中間有很多次,以為清楚了,但是還沒有真正的了解清楚。要洞察這裡面的問題,就首先要了解編譯器在這裡面做了什麼。char a 6 這裡宣告並定義了乙個二維陣列,編譯器採用直接賦值的方式給一塊連續記憶體賦值。char b 6 a 這裡宣告並定義了乙個陣列指標,指向二維陣列...