1樓:匿名使用者
應該這樣定義:const int ((*temp)(int a,int b)); 但是函式不能返回一個陣列. 這樣也編不過.
2樓:匿名使用者
請參考:
#include
const int fun1(int a,int b); const int fun2(int a,int b); typedef const int (* fun)(int a,int b); //把 int 返回值 兩個int引數的函式定義成fun函式指標型別
int main()
; //形式相同的函式指標陣列,方便函式的統一管理int temp[2];
/*int i;
for(i=0;i<2;i++)
temp[i]=f[i](1,1);
*/temp[0]=f[0](3,6);
temp[1]=f[1](7,4);
printf("%d %d\n",temp[0],temp[1]);
return 0;}
請問在c語言中,函式傳參時怎樣利用指標傳遞陣列
3樓:大野瘦子
陣列名就是指標,例如:
#include
void pr(char *p)
printf(p);
void main(void)
char s = "abc";
pr(s);
4樓:樹桖珍
比如函式需要一個整型陣列:
void ex(int a)
或者可以寫成:
void ex(int *a)
效果是一樣的。
使用的時候:
引用陣列中的第2個元素(即下標為1的元素)a[1]
或者*(a+1)
基本上與陣列的正常使用沒有區別。
c語言是一門通用計算機程式語言,應用廣泛。c語言的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。
儘管c語言提供了許多低階處理的功能,但仍然保持著良好跨平臺的特性,以一個標準規格寫出的c語言程式可在許多電腦平臺上進行編譯,甚至包含一些嵌入式處理器(微控制器或稱mcu)以及超級電腦等作業平臺。
5樓:匿名使用者
宣告:int arr(int a);<=>int arr(int *a);(計算機會把前者也翻譯成後者處理,效果等價)
陣列名就是指標
int a[5]=;
引用時:
arrey=arr(a);
其實形參是一個指向該陣列的指標,而陣列只有一個,指向即操作返回陣列值我不知道你想問什麼
6樓:匿名使用者
直接上例子:
比如函式需要一個整型陣列:
void ex(int a)
或者可以寫成:
void ex(int *a)
效果是一樣的。
使用的時候:
引用陣列中的第2個元素(即下標為1的元素)a[1]
或者*(a+1)
基本上與陣列的正常使用沒有區別。
(但要注意 由於呼叫函式時只傳遞了指標(首地址) 所以程式不會做超界檢查)
你在子函式中進行的更改會直接影響到原陣列的內容這也就意味著 只要你在處理函式中更改了資料 那麼任何函式(包括原函式)訪問這個陣列時 都使用的是你更改以後的數值
7樓:匿名使用者
int *p;
int a[10];
p = a;
編寫逆向排序函式(陣列或指標)C謝謝
include void sort int x,int n void main i printf before the array is for i 0 i 6 i printf 3d a i 輸出呼叫前陣列 sort a,6 printf nafter the array is for i 0 i...
怎麼更好的去理解陣列指標,關於指標陣列和陣列指標的,用法和區別
一 陣列指標 陣列名本身就是一個指標,指向陣列的首地址。注意這是宣告定長陣列時,其陣列名指向的陣列首地址是常量。而宣告陣列並使某個指標指向其值指向某個陣列的地址 不一定是首地址 指標取值可以改變。二 陣列指標 是指向陣列的一個指標,如int p 10 表示一個指向10個int元素的陣列的一個指標。另...
C 指標陣列
cout a i j 首先你要了解 在一維陣列中 a表示第一個值,a 1表示第二個值的指標,a 1 表示第二個值的值 二維陣列屬於高階指標也就是 p 在 a i j 中 a i 在二維陣列中,是一個指標哦,不是值!a 0 0 表示第一個值,a 0 1表示第一組的,第二個值的指標 a 0 1 表示第一...