一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

二維數(shù)組與數(shù)組指針以及指針數(shù)組

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

二維數(shù)組與數(shù)組指針以及指針數(shù)組

二維數(shù)組定義
int buff[3][5];
第一個[3] 表示二維數(shù)組buff中有3個一位數(shù)組
第二個[5] 表示每個一維數(shù)組中有5個成員。
若二維數(shù)組定義時進行初始化則第一個[]可以不填。第二個[]不能省略。
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},
}; 
//部分初始化,數(shù)組中未賦值的默認(rèn)為0
int buff3[][3]={
             {1,2,3,},
             {},
             {4,5,6},
};
   //初始化自動計算行數(shù),數(shù)組中未賦值的默認(rèn)為0
int buff3[][3]={
             {},
             {},
             {},
};
  int buff[3][3];//定義二維數(shù)組直接限制行、列,未初始化成員為隨機值

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

  • 示例一:
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)>

二維數(shù)組作為形參處傳入

  • 以數(shù)組方式傳入
#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]));
}
/************遍歷二維數(shù)組*****************
**
**以數(shù)組方式傳入,必須指定列寬
**int line  -- 二維數(shù)組行數(shù)
****************************************/
void tow_array(int buff[][3],int line)
{
	int i,j;
	for(i=0;i;i++)>
  • 以數(shù)組指針傳入
#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]));
}
/************遍歷二維數(shù)組*****************
**
**以數(shù)組指針方式傳入,必須指定列寬
**int line  -- 二維數(shù)組行數(shù)
****************************************/
void tow_array(int (*buff)[3],int line)
{
	int i,j;
	for(i=0;i;i++)>

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

#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]
}

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

#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]
}

注:二維數(shù)組賦值給指針數(shù)組時p=buff是錯誤的。

二維數(shù)組通過二維指針方式傳入
示例一:

#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]));
}
/************遍歷二維數(shù)組*****************
**
**以二維指針傳入
**int line  -- 二維數(shù)組行數(shù)
****************************************/
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];
	//將二維數(shù)組賦值給指針數(shù)組
	for(i=0;i(buff)>

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 指針
    +關(guān)注

    關(guān)注

    1

    文章

    484

    瀏覽量

    70905
  • 數(shù)組指針
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    5282
收藏 人收藏

    評論

    相關(guān)推薦

    C語言中指針數(shù)組數(shù)組指針的區(qū)別

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

    問一個二維數(shù)組指針的問題?

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

    Labview之簇數(shù)組二維數(shù)組顯示

    Labview之簇數(shù)組二維數(shù)組顯示,很好的Labview資料,快來下載學(xué)習(xí)吧。
    發(fā)表于 04-19 11:28 ?0次下載

    數(shù)組指針的詳細講解

    數(shù)組指針的詳細講解
    發(fā)表于 10-16 08:44 ?0次下載

    C語言程序設(shè)計教程之二維數(shù)組如何應(yīng)用二維數(shù)組的資料概述

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

    二維數(shù)組指針指向錯誤應(yīng)該如何糾正

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

    指針數(shù)組數(shù)組指針的區(qū)別

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

    理解函數(shù)指針、函數(shù)指針數(shù)組、函數(shù)指針數(shù)組指針

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

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

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

    如何用指針數(shù)組數(shù)組指針來表示二維數(shù)組?

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

    C語言中什么是指針數(shù)組

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

    數(shù)組指針不能混用的情況

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

    數(shù)組指針不相同嗎?數(shù)組指針有哪些區(qū)別

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

    面試???1:函數(shù)指針指針函數(shù)、數(shù)組指針指針數(shù)組

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

    指針數(shù)組二維數(shù)組有沒有區(qū)別

    指針數(shù)組二維數(shù)組有沒有區(qū)別?比如這樣的兩個代碼。 int main(){ char *s1[] = { "hello", "world", "total" }; char s2[][
    的頭像 發(fā)表于 11-24 11:12 ?416次閱讀