自我練習-陣列傳遞函式比大小(指標練習)(彈性陣列)

今天突然想嘗試看看是不是可以創造一個有彈性的陣列,大小由使用者自行定義,在注意程式碼掃描順序的概念後,居然可以創造出來,不過會不會延伸出甚麼問題目前尚未出現,此次練習是要強化自身指標與陣列間的關係,經過這次練習,其實指標傳遞到函式後,運用起來也和陣列沒有兩樣,前提是如何讓函式可以在不同數量(或情況)的之下,還可以讓其功能發揮出來,也讓我更加強了去思索創建一個函式前,函式的彈性是會在當程式越來越龐大時,發揮出更好的執行效率或者減小程式的SIZE。

練習:
1.創建一個比大小的函式,並且此函式適用於不同大小之陣列之運作。
2.利用程式執行的前後順序,嘗試創建一個彈性的陣列。
【彈性陣列方面暫時不知道是否會有問題】
#include<stdio.h>
int max(int *,int);
int main(){
int a[5]={6,7,69,8,9},i=0;
int space=sizeof(a)/4;
//printf("%p\n",a);
int x;
printf("陣列大小:");
scanf("%d",&x);
int k[x];
for(int j=0;j<x;++j){
scanf("%d",&k[j]);
}
printf("彈性陣列MAX:%d\n\n",max(k,x));

printf("MAX:%d\n",max(a,space));
int *n=a;
while(n!=a+5){
printf("a[%d]:%d\n",i,*n++);
++i;
}
return 0;
}

int max(int *g,int b){
int big=g[0];
for(int i=1;i<b;++i){
if(big<g[i]){
big=g[i];
}
}
return big;
}

留言