C語言中定義函式,變數是指向指標的變數,呼叫時要怎麼呼叫

2021-05-04 18:26:52 字數 2391 閱讀 2952

1樓:

首先fact函式返回的是double型別,第乙個引數是double型的二維指標.所以是

*c[i] = fact (c,y,z);

因為double *c[3];是二維double指標,c[i]是乙個double一維指標,*c[i]就是double型資料。c是二維指標,可以傳過去

2樓:被雨困住的我

*c[i]=fact(c,y,z);

3樓:匿名使用者

*c[i]=fact(c,y,z);

示例:double fcat(double **x, int y, int z)

printf("\n");

}return 0;

}int main(int argc, char* argv);double *c[3]=;

*c[0] = fcat(c, y, z);

return 0;}

4樓:扯淡書生

(&c,y,z) c是陣列的名字也就是首位址,位址的位址就是二級指標,型別相同,引數就能傳遞函式就能呼叫

5樓:頑強的椒草

fact函式返回值是double型別,那麼定義乙個double型別的變數,直接呼叫函式就行

double i;

i=fact(引數1,2,3);

c語言 怎麼呼叫指標陣列函式

6樓:匿名使用者

1.函式指標的陣列定義方法:返回值型別( * 指標變數名[number]) (形參列表)。

例如:double add(double a,double b){};

double sub(double a,double b){};

double mul(double a,double b){};

double div1(double a,double b){};

double (*oper_func)(double, double) = ;//函式指標的陣列定義

2.函式指標是指向函式的指標變數。 因而「函式指標」本身首先應是指標變數,只不過該指標變數指向函式。

這正如用指標變數可指向整型變數、字元型、陣列一樣,這裡是指向函式。c在編譯時,每乙個函式都有乙個入口位址,該入口位址就是函式指標所指向的位址。有了指向函式的指標變數後,可用該指標變數呼叫函式,就如同用指標變數可引用其他型別變數一樣,在這些概念上是大體一致的。

函式指標有兩個用途:呼叫函式和做函式的引數。

3.函式指標的宣告方法為:

返回值型別( * 指標變數名) (形參列表);

「返回值型別」說明函式的返回型別,「( * 指標變數名)」中的括號不能省,括號改變了運算子的優先順序。若省略整體則成為乙個函式說明,說明了乙個返回的資料型別是指標的函式,後面的「形參列表」表示指標變數指向的函式所帶的引數列表。例如:

int func(int x); /* 宣告乙個函式 */

int (*f) (int x); /* 宣告乙個函式指標 */

f = func; /* 將func函式的首位址賦給指標f */

或者使用下面的方法將函式位址賦給函式指標:

f = &func;

賦值時函式func不帶括號,也不帶引數,由於func代表函式的首位址,因此經過賦值以後,指標f就指向函式func(x)的**的首位址。

例子:#include

int max(int x,int y)

int main()

7樓:

#include

#include

void paixu(char **a) }} }

void main()

; int i;

printf("輸出位址\n\n");

for(i=0;i<5;i++)

paixu(a);

printf("最終排序是\n\n");

for(i=0;i<5;i++) }

main函式中a是常指標,它指向一組陣列,這組陣列每個元素又是指向字串的指標,所以陣列中每個元素的型別是char* , 因此變數a的型別是(char*)*,即char**.排序沒有必要返回char吧(完成排序功能還用返回乙個字元麼?),函式引數改為char**型別,這樣才能將指標陣列首位址傳入函式.

向函式裡傳入的是陣列指標,我更改的是陣列元素,這是明顯的按位址傳遞方式傳遞引數,還用再return麼.

8樓:匿名使用者

指標陣列 就是有乙個陣列,陣列中的元素都是指標,這些指標有相同的型別int *a[3];

char *b[4];

double *c[5];

char paixu(char *a[5]) //這樣才是字串陣列 }} }

c語言中,函式可以巢狀定義嗎,C語言中,函式可以巢狀定義嗎

取決於編譯器.我在ubuntu16.04 用預設gcc,在eclipse中測試可以實現巢狀定義.經測試在函式中定義的函式,在當前作用域可以被呼叫.這樣一來,c語言貌似具有了一些物件導向的特性,使用起來比較方便 定義的時候不能巢狀,但是定義的時候可以遞迴 除了主函式以外都可以,不過在該函式巢狀定義前要...

C語言如果我定義了指標int p和變數int p,他倆之間有什麼關係嗎

int p int a 1 p a p定義成了bai乙個整du型指zhi針,而a定義成了乙個初始值為1的整型變數。dao指標是用來儲存內對應容型別的變數的位址的,所以p a 的意思是用指標p來儲存變數a的位址。而如果同時定義int p int p 會發生編譯時錯誤,因為p重複定義了。同乙個作用域 內...

C語言指標的意義在C語言中什麼是指標?指標是幹什麼用的?,有什麼意義?

如果使用變數傳遞,因為自定義函式沒有返回值,所以len的值不會改變。而使用指標,則自定義函式直接操作len,即使沒有返回值,len的值已經改變。如果使用變數傳遞也可以實現,就是需要返回len的值。指標就是指變數的位址 mul arr,i,len 你這個函式的實參取的len的位址,所以你定義函式時的形...