C語言自定義函式的形參為陣列時需要注意傳入長度

2022-02-18 06:34:14 字數 895 閱讀 4593

1 #include 2 #include 3/*4

程式執行結果:

5false sort

6length=174

8right sort

9length=5

104 5 7 8 9

11*/

12/*

13個人總結:

14c/c++ 傳遞陣列,

15雖然傳遞的是首位址位址,

16但是引數到了函式內,就成了普通指標,

17不再是陣列首位址了,

18所以試圖在別的函式中無法得到傳遞陣列的長度。

19只能先計算好長度後再傳過去。

20*/

21void false_sort(int

a)32}33

//printf("%s\n",a);

34for(int i=0;i)37}

38//

void right_sort(int a,int length)49}

50//

printf("%s\n",a);

51for(int i=0;i)54}

55int

main()56;

58//

char b=;

59int length=sizeof(a)/sizeof(int

);60

//printf("%d\n",sizeof(b)-1);

61 printf("

false sort\n");

62false_sort(a);

63 printf("

\nright sort\n");

64right_sort(a,length);

65return0;

66 }

模板函式中定義形參預設值為自定義類時如何宣告

起因 在寫模板類時,有乙個函式,其中的乙個形參是自定義類的引用,目的是作為返回資料,供呼叫者使用。可是,有時候呼叫者並不需要使用這個返回值,純粹是僅僅實現其過程即可。如果為了使用該函式,還不得不定義乙個變數來接這個返回值,比較麻煩。所以,為了簡化呼叫,想要使用預設的形參。可是,一開始在宣告函式時,總...

C語言 自定義函式

c語言 關於自定義函式 return type function name datetype arg datetype arg2 函式三要素 函式返回值 函式名 引數列表 例子呀 自定義函式的完整寫法 include 函式原型 int sum int,int 可以只寫型別,引數名稱可省略 int m...

C語言自定義函式如何返回陣列

使用 c 語言,在main 函式中呼叫了乙個自定義的函式,想要從函式中獲取其執行產生的字串,直接返回陣列是實現不了的,最起碼也要返回陣列的位址。但是在自定義函式中建立陣列後,該陣列本身是乙個區域性變數,當該自定義函式的生命週期結束後,區域性變數也就被 了,即使返回了乙個代表陣列的位址,但實際上其指代...