在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

二維數組與數組指針以及指針數組

嵌入式技術 ? 來源:嵌入式技術 ? 作者:嵌入式技術 ? 2022-08-16 09:02 ? 次閱讀

二維數組與數組指針以及指針數組

二維數組定義
int buff[3][5];
第一個[3] 表示二維數組buff中有3個一位數組
第二個[5] 表示每個一維數組中有5個成員。
若二維數組定義時進行初始化則第一個[]可以不填。第二個[]不能省略。
buff表示第0行的整體地址。即:&buff[0], buff類型為:int (*)[5]
buff[0]表示第0行的首地址。即:&buff[0][0], buff[0]類型為int *
buff[0][0]表示第0行第0列的值。

示例:

int buff[][3]={1,2,3,4,5,6};//每行有3個元素
int buff2[][3]={
            {1,2,3},
            {4,5,6},
}; 
//部分初始化,數組中未賦值的默認為0
int buff3[][3]={
             {1,2,3,},
             {},
             {4,5,6},
};
   //初始化自動計算行數,數組中未賦值的默認為0
int buff3[][3]={
             {},
             {},
             {},
};
  int buff[3][3];//定義二維數組直接限制行、列,未初始化成員為隨機值

注:此處舉例均為局部二維數組
二維數組遍歷

  • 示例一:
int main()
{
	int buff[][3]={1,2,3,4,5,6};//每行有3個元素
	int i,j;
	for(i=0;i(buff)>
  • 示例二
#include 
int main()
{
	int buff[][3]={1,2,3,4,5,6};//每行有3個元素
	int *p=buff[0];
	int i;
	for(i=0;i(buff)>

二維數組作為形參處傳入

  • 以數組方式傳入
#include 
void tow_array(int buff[][3],int line);
int main()
{
	int buff[][3]={1,2,3,4,5,6};//每行有3個元素
	tow_array(buff,sizeof(buff)/sizeof(buff[0]));
}
/************遍歷二維數組*****************
**
**以數組方式傳入,必須指定列寬
**int line  -- 二維數組行數
****************************************/
void tow_array(int buff[][3],int line)
{
	int i,j;
	for(i=0;i;i++)>
  • 以數組指針傳入
#include 
void tow_array(int (*buff)[3],int line);
int main()
{
	int buff[][3]={1,2,3,4,5,6};//每行有3個元素
	tow_array(buff,sizeof(buff)/sizeof(buff[0]));
}
/************遍歷二維數組*****************
**
**以數組指針方式傳入,必須指定列寬
**int line  -- 二維數組行數
****************************************/
void tow_array(int (*buff)[3],int line)
{
	int i,j;
	for(i=0;i;i++)>

數組指針
定義:int (p)[n];指向數組整體的指針。數組指針類型:int ()[n]
()優先級高,所以(*p)是一個指針,指向一個整型的一維數組,一維數組的成員個數位n,也就是說p的步長為n。即p+1偏移的地址為n個int型長度。因此數組指針也稱為行指針。
優先級: () > [] > *
示例:

#include 
int main()
{
	int buff[][3]={1,10,3,4,5,6};//每行有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]
}

指針數組
定義:int* p[n];數組中保存int*指針。指針數組類型:int *[n],p的類型是int **,p+1偏移的地址為:sizeof(int )。
[]的優先級高,[]和p組合成一個數組,int 和p[]組合成指針數組,他有n個指針類型的數組元素,即數組中的每一個元素都是int型指針。
優先級: () > [] > *
將二維數組賦個指針數組示例:

#include 
void tow_array(int (*buff)[3],int line);
int main()
{
	int buff[][3]={1,10,3,4,5,6};//每行有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()
{
	int i;
	char *buff[]={"123",
				"123456",
				"123456789",
				"字符串口測試"
				};
	tow_array(buff,sizeof(buff)/sizeof(buff[0]));
}
/************遍歷二維數組*****************
**
**以二維指針傳入
**int line  -- 二維數組行數
****************************************/
void tow_array(char **buff,int line)
{
	int i,j;
	for(i=0;i;i++)>

示例二:

#include 
void tow_array(int **buff,int line,int row);
int main()
{
	int i;
	int buff[][3]={1,10,3,4,5,6};//每行有3個元素
	int *p[3];
	//將二維數組賦值給指針數組
	for(i=0;i(buff)>

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 指針
    +關注

    關注

    1

    文章

    484

    瀏覽量

    70902
  • 數組指針
    +關注

    關注

    0

    文章

    5

    瀏覽量

    5282
收藏 人收藏

    評論

    相關推薦

    C語言中指針數組數組指針的區別

    指針數組之間存在著緊密的關系。在本文中,我們將探討指針數組的關系、指針算術和數組遍歷、多維
    發表于 08-17 15:29 ?537次閱讀

    問一個二維數組指針的問題?

    比如定義一個二維數組int a[3][5], 我們知道a是這個二維數組的首地址,a[0]是第一行元素的首地址,假設這個二維
    發表于 05-09 11:28

    數組指針的詳細講解

    數組指針的詳細講解
    發表于 10-16 08:44 ?0次下載

    C語言入門教學之數組資料總結免費下載

    二維數組的定義和二維數組元素的引用6 二維數組指針
    發表于 10-23 17:53 ?5次下載
    C語言入門教學之<b class='flag-5'>數組</b>資料總結免費下載

    C語言程序設計教程之二維數組如何應用二維數組的資料概述

    本文檔的主要內容詳細介紹的是C語言程序設計教程之二維數組如何應用二維數組的資料概述主要內容包括了:1 了解二維
    發表于 10-26 16:48 ?3次下載

    二維數組指針指向錯誤應該如何糾正

    本文檔的主要內容詳細介紹的是二維數組指針指向錯誤應該如何糾正。
    發表于 12-13 16:01 ?12次下載
    <b class='flag-5'>二維</b><b class='flag-5'>數組</b>的<b class='flag-5'>指針</b>指向錯誤應該如何糾正

    指針數組數組指針的區別

    這里我們區分兩個重要的概念:指針數組數組指針
    的頭像 發表于 06-29 15:30 ?2w次閱讀
    <b class='flag-5'>指針</b><b class='flag-5'>數組</b>和<b class='flag-5'>數組</b><b class='flag-5'>指針</b>的區別

    理解函數指針、函數指針數組、函數指針數組指針

    理解函數指針、函數指針數組、函數指針數組指針
    的頭像 發表于 06-29 15:38 ?1.5w次閱讀
    理解函數<b class='flag-5'>指針</b>、函數<b class='flag-5'>指針</b><b class='flag-5'>數組</b>、函數<b class='flag-5'>指針</b><b class='flag-5'>數組</b>的<b class='flag-5'>指針</b>

    【C語言進階】“數組指針”和“指針數組”都是啥跟啥?

    【C語言進階】“數組指針”和“指針數組”都是啥跟啥?
    的頭像 發表于 08-31 13:21 ?2083次閱讀

    如何用指針數組數組指針來表示二維數組

    a是一個二維數組,3 行 4 列,一共 12 個元素。
    的頭像 發表于 03-06 11:38 ?1681次閱讀

    C語言中什么是指針數組

    在C語言中一個數組,若其元素均為指針類型數據,稱為指針數組,也就是說,指針數組中的每一個元素都存
    的頭像 發表于 03-10 15:26 ?2095次閱讀

    數組指針不能混用的情況

    數組指針不能混用的情況? 數組指針是 C/C++ 中非常常見的特性和概念。然而,在某些情況下,數組
    的頭像 發表于 12-07 13:46 ?750次閱讀

    數組指針不相同嗎?數組指針有哪些區別

    數組就是指針指針就是數組,這樣的言論在評論區看到不下于10次。
    的頭像 發表于 12-13 16:34 ?1932次閱讀
    <b class='flag-5'>數組</b>和<b class='flag-5'>指針</b>不相同嗎?<b class='flag-5'>數組</b>和<b class='flag-5'>指針</b>有哪些區別

    面試常考+1:函數指針指針函數、數組指針指針數組

    在嵌入式開發領域,函數指針指針函數、數組指針指針數組是一些非常重要但又容易混淆的概念。理解它
    的頭像 發表于 08-10 08:11 ?1219次閱讀
    面試常考+1:函數<b class='flag-5'>指針</b>與<b class='flag-5'>指針</b>函數、<b class='flag-5'>數組</b><b class='flag-5'>指針</b>與<b class='flag-5'>指針</b><b class='flag-5'>數組</b>

    指針數組二維數組有沒有區別

    指針數組二維數組有沒有區別?比如這樣的兩個代碼。 int main(){ char *s1[] = { "hello", "world", "total" }; char s2[][
    的頭像 發表于 11-24 11:12 ?416次閱讀
    主站蜘蛛池模板: 拍拍免费视频 | 日本视频一区二区三区 | 在线观看s色 | 干干天天 | 亚洲免费毛片 | 亚洲午夜精品久久久久久人妖 | 四虎在线最新地址公告 | yellow中文字幕久久网 | 国产精品久久久亚洲第一牛牛 | 看草逼| 一级一片免费播放 | 天天噜天天干 | 成年人看的黄色 | 人与牲动交xx | 免费黄色一级 | 在线视免费频观看韩国aaa | 成人精品一区二区不卡视频 | 69日本xxxxxxxxx98 69日本xxxxxxxxx内谢 | 黄色网在线 | 女生张开腿让男人桶 | 亚洲大成色www永久网址 | 港台无码 | 欧美福利网| 欧美在线bdsm调教一区 | 欧美天天性 | 国产又粗又大又爽又免费 | 五月天精品 | 成人在线一区二区三区 | 四虎久久精品国产 | 天堂在线天堂最新版在线www | 久久精品国产大片免费观看 | 日韩有色| 欧美三级午夜伦理片 | 欧美成人免费 | 日韩电影中文字幕 | 亚洲成人免费 | 五月婷婷免费视频 | 真实的国产乱xxxx在线 | 国产在线精彩视频二区 | 1024毛片| 色综合国产 |