C語言關於函式傳遞引數問題

2022-05-04 23:58:51 字數 847 閱讀 9665

1樓:成熟oo蘋果

好久沒接觸過c了,有些忘了,講講我的理解。

int * a[10] 表示a是乙個指向 int * 指標的陣列,它和a[10][10]是一樣的,

而和int **a中的a性質是一樣的,都是指向int*的指標,但有點區別:

int * a[10] 中 a++ 位址向前移動10位而int **a 中的a++位址移動一位。所以我的結論是::

void func(int *a[10])和void func(int a[10][10])是一樣的,和void func(int **a)有區別。

具體可參考 c++primer 講得很清楚。

2樓:匿名使用者

它是指標的前提下:

*a[10] = 陣列 index 第10位置裡的值。

a[10] = 陣列 index 第10位置的記憶體位址。

**a = 傳遞什麼它就是什麼值。如果傳遞乙個陣列,那麼就是陣列第乙個位置。也可以傳遞陣列裡特定的值。

a[10][10] = 就是 10 x 10 陣列。

int *[10] = 錯誤用法,傳遞時必須有名字。int (*p)[10]:二元陣列指標的用法,只能這麼用。

草率採納了回答,讓我汗~

3樓:匿名使用者

沒什麼區別實質是一樣的,void func(int *a[10])和void func(int **a)//前者是陣列指標,後者是二級指標

void func(int a[10][10])和void func(int *[10])//前者是二維陣列,後者是指向乙個包含10個元素的int型陣列的指標

他們寫法不一樣但實質是一樣的

51微控制器c語言中斷函式不能進行引數傳遞,是什麼意思,誰能解釋一下

是指中斷處理函式不能有輸入引數也不能有函式返回。因為中斷都是些硬體自動呼叫,沒有程式去給他傳遞引數,也沒有硬體去接收引數。不過x86計算機的軟中斷可以有引數傳遞,不過他是用暫存器傳遞的。1 51微控制器c51語言中斷函式本身不帶引數傳遞,但你可以使用全域性變數進行引數傳遞。2 所謂中斷函式不能進行引...

C怎麼把字元陣列當作函式引數傳遞

以指標方式或數bai組的方式都可以實du現引數傳遞zhi的,實際上都是將dao陣列的首位址傳遞專到子函式中去的。屬例如 include include void fun1 char pstr void fun2 char arr int main c 不能傳陣列,傳bai的是第乙個du陣列zhi元素...

c語言帶引數函式的原型宣告,c語言中函式原型宣告部分是什麼意思

void show n char char,int 如果是在c 是合法的,char,int 是友元,表示只有引數型別無引數變數名,但在c 語言中這樣寫不規範,要寫成 void show n char char ch,int a 此處為形參,實際使用中要用實際引數傳入。如 呼叫該函式時,傳入實參 sh...