最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語(yǔ)言之關(guān)于二維數(shù)組在函數(shù)中的調(diào)用問題

 更新時(shí)間:2022年07月13日 14:56:38   作者:紅飛機(jī)上的豬  
這篇文章主要介紹了C語(yǔ)言之關(guān)于二維數(shù)組在函數(shù)中的調(diào)用問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

關(guān)于二維數(shù)組在函數(shù)中的調(diào)用問題

之前在學(xué)習(xí)二維數(shù)組的時(shí)候感覺理解起來很簡(jiǎn)單,所以理解一下就過去了,但是當(dāng)自己真正的去用二維數(shù)組數(shù)組解決一些問題(特別是在函數(shù)調(diào)用二維數(shù)組的過程中)才真正發(fā)現(xiàn)原來使用起來還是要去注意一些細(xì)節(jié)的。廢話不多說,直接上干貨!

函數(shù)調(diào)用二維數(shù)組

在函數(shù)中調(diào)用二維數(shù)組的具體格式如下:

1、聲明:這是聲明的兩種格式,在這里定義的是一個(gè)N*5的二維字符數(shù)組,各位看官一定要注意,在聲明的過程中可是要將二維數(shù)組中第二個(gè)長(zhǎng)度參數(shù)進(jìn)行標(biāo)明的呀。

2、定義:和聲明的格式?jīng)]有什么大的區(qū)別,只不過是要如果要采用第二種聲明方式的話要在定義時(shí)補(bǔ)充完整形參名

3、如果要去在函數(shù)中只使用二維數(shù)組中的其中一個(gè)一維數(shù)組時(shí)

我的個(gè)人做法是正常的在函數(shù)聲明中正常定義一個(gè)二維數(shù)組,之后再在函數(shù)申明中額外添加一個(gè)整數(shù)參數(shù)去來限定在函數(shù)中使用二維數(shù)組中具體哪一個(gè)一維數(shù)組,例子如下:

所寫這個(gè)函數(shù)是為了去分別算出這個(gè)二維數(shù)組中的每一個(gè)一維數(shù)組的平均值,所以我在定義函數(shù)時(shí)加了一個(gè)n來表示我要算哪一個(gè)一維數(shù)組的平均值。

4、在結(jié)構(gòu)體中千萬不要去使用二維數(shù)組?。。?/strong>

當(dāng)初我在寫結(jié)構(gòu)體是想當(dāng)然的去使用了二維數(shù)組,結(jié)果。。。

如果在使用結(jié)構(gòu)體的過程中需要用到類似于二維數(shù)組的儲(chǔ)存數(shù)據(jù)的特性時(shí),我們應(yīng)當(dāng)去選取用結(jié)構(gòu)體數(shù)組來解決相應(yīng)的問題。結(jié)構(gòu)體數(shù)組相當(dāng)一二維數(shù)組的一維數(shù)組,結(jié)構(gòu)體中所定義的一些信息精細(xì)化相當(dāng)于二維數(shù)組中一維數(shù)組的信息。

好了,這就是我這個(gè)小白中的小白在實(shí)際使用的過程中所出現(xiàn)的一些情況。

 二維數(shù)組如何放到函數(shù)中使用

要想在函數(shù)中帶入一個(gè)二維數(shù)組

前提首先我們要知道二維數(shù)組在內(nèi)存中是如何分布的

假設(shè)定義一個(gè)二維數(shù)組 arr[3][3];

內(nèi)存中的是這樣儲(chǔ)存的:

圖解:

也就是說,二維數(shù)組的內(nèi)存關(guān)系是連續(xù)的,因此如果我們?cè)诤瘮?shù)中帶入一個(gè)數(shù)組只需要數(shù)組的第一排的第一個(gè)元素的地址和行數(shù)和列數(shù)三個(gè)條件

下面以一個(gè)二維矩陣的轉(zhuǎn)置為例

關(guān)鍵點(diǎn)是如何利用二維數(shù)組的第一排首元素的地址去把整個(gè)數(shù)組表示出來

假設(shè):

數(shù)組 int arr[3][3];

arr的值為第一排首元素地址

已知行列數(shù)為3,令int *p=arr;

可以用 *(p+i*3+j)表示第i排第j列的元素

因此函數(shù)只需要定義一個(gè)接收數(shù)組第一排首地址元素的指針類型的形參即可

下面見完整代碼: 

#include<stdio.h>
#include<windows.h>
void Array_transpose(int *arr, int rank)//rank為數(shù)組的列數(shù)  代表每排有多少個(gè)元素
{
	int i;
	int j;
	int temp;//temporary 臨時(shí)的
	for (i = 0; i < rank; i++)
	{
		for (j = 0; j < i; j++)
		{
			//交換沿著對(duì)角線對(duì)稱的兩個(gè)數(shù)的值
			//交換方法一
			/* *(arr + j * rank + i)=*(arr + j * rank + i)+*(arr + i * rank + j);   
			 *(arr + i * rank + j)=*(arr + j * rank + i)-*(arr + i * rank + j);   
			 *(arr + j * rank + i)=*(arr + j * rank + i)-*(arr + i * rank + j); */
			
			//交換方法二
			 *(arr + j * rank + i)=*(arr + j * rank + i)^*(arr + i * rank + j);
			 *(arr + i * rank + j)=*(arr + j * rank + i)^*(arr + i * rank + j);
			 *(arr + j * rank + i)=*(arr + j * rank + i)^*(arr + i * rank + j);
 
			//交換方法三
			/* temp = *(arr + j * rank + i);
			 *(arr + j * rank + i) = *(arr + i * rank + j);
			 *(arr + i * rank + j) =temp;*/
		}
	}
}
//配圖解:

 
int main()
{
	int a[5][5]=
	{
		0,0,1,0,0,
		0,0,1,0,0,
		0,0,1,0,0,
		0,0,1,0,0,
		0,0,1,0,0
 
	};
	int i, j,s;
	
	Array_transpose(a, 5);
 
		for (i = 0; i < sizeof(a)/sizeof(a[0]); i++)
		{
			//	 sizeof(a)/sizeof(a[0])得數(shù)組的有多少排
			for (j = 0; j < sizeof(a[0])/ sizeof(a[0][0]); j++)
 			//	 sizeof(a[0])/ sizeof(a[0][0])得到的是第一排的元素個(gè)數(shù)
			{
				if (a[i][j])
					printf("▇");
				else
				{
					printf("  ");
				}
			}
			printf("\n");
		}
	
	system("pause");
	return 0;
}

代碼實(shí)現(xiàn)的功能:

不使用Array_transpose()

原本輸出應(yīng)該是這樣

使用Array_transpose()

轉(zhuǎn)置后

利用代碼中的方法可以實(shí)現(xiàn)二維數(shù)組的轉(zhuǎn)置,可以作為俄羅斯方塊的色塊變化方向的基礎(chǔ)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。 

相關(guān)文章

  • 8皇后問題的解法實(shí)例代碼

    8皇后問題的解法實(shí)例代碼

    8皇后問題的解法實(shí)例代碼,需要的朋友可以參考一下
    2013-03-03
  • C語(yǔ)言實(shí)現(xiàn)進(jìn)程5狀態(tài)模型的狀態(tài)機(jī)

    C語(yǔ)言實(shí)現(xiàn)進(jìn)程5狀態(tài)模型的狀態(tài)機(jī)

    狀態(tài)機(jī)在實(shí)際工作開發(fā)中應(yīng)用非常廣泛,用這幅圖就可以很清晰的表達(dá)整個(gè)狀態(tài)的流轉(zhuǎn)。本篇通過C語(yǔ)言實(shí)現(xiàn)一個(gè)簡(jiǎn)單的進(jìn)程5狀態(tài)模型的狀態(tài)機(jī),讓大家熟悉一下狀態(tài)機(jī)的魅力,需要的可以參考一下
    2022-10-10
  • C語(yǔ)言安全之?dāng)?shù)組長(zhǎng)度與指針實(shí)例解析

    C語(yǔ)言安全之?dāng)?shù)組長(zhǎng)度與指針實(shí)例解析

    這篇文章主要介紹了C語(yǔ)言安全之?dāng)?shù)組長(zhǎng)度與指針,需要的朋友可以參考下
    2014-07-07
  • C++對(duì)象的動(dòng)態(tài)建立與釋放詳解

    C++對(duì)象的動(dòng)態(tài)建立與釋放詳解

    我們知道可以用new運(yùn)算符可以動(dòng)態(tài)的分配內(nèi)存,用delete運(yùn)算符可以釋放這些內(nèi)存。當(dāng)我們使用new運(yùn)算符動(dòng)態(tài)的分配一個(gè)內(nèi)存之后,會(huì)自動(dòng)返回一個(gè)該內(nèi)存段的起始地址,也就是指針。
    2013-10-10
  • C++11/14的新特性(更簡(jiǎn)潔)

    C++11/14的新特性(更簡(jiǎn)潔)

    這篇文章主要介紹了C++11/14的新特性(更簡(jiǎn)潔),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-01-01
  • C語(yǔ)言實(shí)現(xiàn)桶排序的方法示例

    C語(yǔ)言實(shí)現(xiàn)桶排序的方法示例

    這篇文章主要介紹了C語(yǔ)言實(shí)現(xiàn)桶排序的方法,簡(jiǎn)單描述了桶排序的概念、原理并結(jié)合實(shí)例形式分析了C語(yǔ)言實(shí)現(xiàn)桶排序算法的具體操作技巧,需要的朋友可以參考下
    2018-01-01
  • C語(yǔ)言實(shí)現(xiàn)飛機(jī)售票系統(tǒng)

    C語(yǔ)言實(shí)現(xiàn)飛機(jī)售票系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)飛機(jī)售票系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • OpenCV實(shí)現(xiàn)更改圖片顏色功能

    OpenCV實(shí)現(xiàn)更改圖片顏色功能

    這篇文章主要為大家詳細(xì)介紹了如何利用OpenCV實(shí)現(xiàn)更改圖片顏色的功能,文中代碼介紹詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • C語(yǔ)言深入探究函數(shù)的溯源

    C語(yǔ)言深入探究函數(shù)的溯源

    函數(shù)是一組一起執(zhí)行一個(gè)任務(wù)的語(yǔ)句。每個(gè) C 程序都至少有一個(gè)函數(shù),即主函數(shù) main() ,所有簡(jiǎn)單的程序都可以定義其他額外的函數(shù)
    2022-04-04
  • C語(yǔ)言實(shí)現(xiàn)abs和fabs絕對(duì)值

    C語(yǔ)言實(shí)現(xiàn)abs和fabs絕對(duì)值

    這篇文章主要介紹了C語(yǔ)言實(shí)現(xiàn)abs和fabs絕對(duì)值,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01

最新評(píng)論

桓台县| 黄梅县| 蒙自县| 观塘区| 石河子市| 罗江县| 原平市| 公安县| 临泽县| 白山市| 泽州县| 海门市| 自治县| 昂仁县| 宜章县| 镇康县| 日喀则市| 都江堰市| 克东县| 阿鲁科尔沁旗| 凤冈县| 厦门市| 连云港市| 盐山县| 同仁县| 萨嘎县| 乐陵市| 临沭县| 称多县| 黑龙江省| 余姚市| 泸州市| 阿荣旗| 桂林市| 章丘市| 南郑县| 龙口市| 贡觉县| 沙坪坝区| 将乐县| 墨玉县|