示例:
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 這裡宣告並定義了乙個陣列指標,指向二維陣列...