C / C++ 函式傳遞二維陣列範例與解說 - CHG
文章推薦指數: 80 %
template
不定長度的二維傳遞-手動轉型那如果要傳遞不定長的二維就必須使用指標的指標 int** 來傳遞不過這樣的用法沒辦法直接從int(*)[n] 轉型,必須手動轉型如果想要自動轉型成 int** 反推一下就要使用 int* 的陣列來轉型int 的陣列是一個陣列裡面放著一堆intint* 的陣列是一個陣列裡面放著一堆int*就是說二維陣列,可以想像成有一個一維陣列裡面放著一堆一維陣列//宣告二維陣列
intarr1[2][2]={{1,2},{3,4}};
//取出一維陣列位址
int*a1=arr1[0];
int*a2=arr1[1];
//把一維地址寫進陣列裡
int*p1[2];
p1[0]=a1;
p1[1]=a2;
現在p1可以自動轉型成 int** 了,可以將它傳入了 int** 的函式內了會弄得這麼麻煩是因為維度的長度,本身就屬於型態的一部分。
陣列長度10跟陣列長度11的差別就好像int跟char的差別一樣完全是不一樣的東西而編譯器只會幫你處理最高維度的自動計算而已,所以二維以上不定長度的傳遞在C語言上比較棘手。
C++的話有樣板可以自動處理就沒這個困擾了。
範例/*****************************************************************************
Name:
Date:2018/06/13
By:CharlotteHonG
Final:2018/06/13
*****************************************************************************/
#include
張貼者:
Charlotte.HonG
於
下午4:12
以電子郵件傳送這篇文章BlogThis!分享至Twitter分享至Facebook分享到Pinterest
沒有留言:
張貼留言
較新的文章
較舊的文章
首頁
訂閱:
張貼留言(Atom)
卷軸樣式
網站贊助
熱門文章
一次弄懂硬碟C4C5C605警告意思及如何修復
一次弄懂硬碟C4C5C605警告意思及如何修復C5是什麼資料損毀=未知、壞軌=未知C5就是掃到某個磁軌有問題標記起來,但是還沒有做檢查不知道到底是好是壞,有可能是複製中斷電導致檔案壞了磁頭還沒寫好,這種狀態重寫一次就好了C5自動消失。
...
升級Windsows11不用重灌MBR轉GPT
[圖/影]2022升級Windsows11不用重灌MBR轉GPT不管是要升級Windows10的版本出現,無法安裝windows因為此電腦的磁碟配置不受uefi韌體支援,或是升級Windows11時無法升級,此電腦必須支援安全開機選項等等都可以用這個方法處理...
C/C++函式傳遞二維陣列範例與解說
C/C++函式傳遞二維陣列範例與解說一維陣列的傳遞一維陣列常見的方法是這樣傳遞的voidfun(int*p){...}intarr[10]={};fun(arr);這時候編譯器會自動將 型態::int[10] 轉成 型態::int*...
2022電腦版line來電鈴聲自訂或靜音
2022電腦版line來電鈴聲自訂或靜音相信大家對於line的來電提醒,電腦和手機同時響非常惱火吧,偏偏從設定裡面又不能關掉,設定裡的指示關訊息提醒,來電提醒照樣會響,只有手機條靜音模式可以安靜一下,電腦版完全就不給你關,也無法修改。
line不知道哪根經不對禁止使用者把...
Windows系統MBR轉GPT(EFI)無損資料可開機不須重灌系統
Windows系統MBR轉GPT(EFI)無損資料可開機不須重灌系統重新寫一篇比較簡潔的文章,有影片操作過程,建議直接看這篇-[圖/影]升級Windsows11不用重灌MBR轉GPT https://charlottehong.blogs...
贊助的金額
NT$50TWD
NT$100TWD
NT$300TWD
贊助Charlotte.HonG
最近7天
關於我自己
Charlotte.HonG
檢視我的完整簡介
網誌存檔
►
2022
(32)
►
六月
(5)
►
五月
(1)
►
四月
(1)
►
三月
(4)
►
二月
(11)
►
一月
(10)
►
2021
(47)
►
十二月
(4)
►
十一月
(4)
►
十月
(2)
►
九月
(4)
►
八月
(7)
►
七月
(1)
►
六月
(1)
►
五月
(8)
►
四月
(8)
►
三月
(1)
►
二月
(2)
►
一月
(5)
►
2020
(16)
►
十二月
(1)
►
十一月
(2)
►
十月
(1)
►
九月
(3)
►
七月
(4)
►
五月
(1)
►
四月
(1)
►
三月
(1)
►
一月
(2)
►
2019
(26)
►
十二月
(2)
►
九月
(1)
►
八月
(3)
►
七月
(3)
►
六月
(2)
►
五月
(2)
►
四月
(2)
►
二月
(5)
►
一月
(6)
►
2018
(121)
►
十二月
(1)
►
十一月
(1)
►
十月
(1)
►
九月
(6)
►
八月
(4)
►
七月
(6)
►
六月
(14)
►
五月
(21)
►
四月
(11)
►
三月
(24)
►
二月
(21)
►
一月
(11)
▼
2017
(138)
►
十二月
(12)
▼
十一月
(10)
Centos7配置Samba共享資料夾和印表機
Windows系統GPT(EFI)轉MBR無損資料可開機不須重灌系統
Windows系統MBR轉GPT(EFI)無損資料可開機不須重灌系統
[原始碼]C/C++旋轉任意角度的圖片
sim卡轉接卡空卡插進去拔不出來卡住
[原始碼]C/C++線性插補bilinear與注意事項
微信支付只綁定台灣信用卡,使用權限與金額上限
C/C++函式傳遞二維陣列範例與解說
VisualStudio2017stdio.hwinres.hatlbase.h找不到
AndroidSONY手機Z、XZ系列OTG接上後毫無反應
►
十月
(10)
►
九月
(9)
►
八月
(10)
►
七月
(12)
►
六月
(10)
►
五月
(14)
►
四月
(5)
►
三月
(25)
►
二月
(7)
►
一月
(14)
►
2016
(84)
►
十二月
(15)
►
十一月
(10)
►
十月
(13)
►
九月
(10)
►
八月
(12)
►
七月
(7)
►
五月
(4)
►
四月
(6)
►
二月
(5)
►
一月
(2)
►
2015
(10)
►
十一月
(1)
►
八月
(6)
►
六月
(1)
►
五月
(2)
延伸文章資訊
- 1從C++中的函式返回二維陣列 - 程式人生
Returning multidimensional array from function (7個答案) 7年前關閉。 我想使用從函式返回的二維整數陣列我應該如何定義函式的返回值?
- 2請問大神要怎麼把二維陣列丟入副程式裡執行,以這裡為例。
- 3C++傳遞二維陣列 - 程式人生
C++中一維陣列作為函式引數傳遞應用十分普遍,原理和操作都十分簡單。陣列名就代表了陣列的首地址,下標就是偏移量。函式的形式引數宣告為一級指標即可( ...
- 4Re: [語法] 回傳一個二維陣列- 看板C_and_CPP
首先呢,陣列在C/C++ 中並不是first-class object 至少你不能回傳一個陣列但是你可以回傳一個指向陣列的pointer 這是合法的然而C 的語法有個非常奇怪 ...
- 5C / C++ 函式傳遞二維陣列範例與解說 - CHG
template<size_t N, size_t N2> void fun(int (&arr)[N][N2]) {...}; 如此一來就可以完整的傳入鎮列了,在函式內N1 及N2 就是傳入的...