C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。下面我們來看看C語言的數組與函數
數組作爲函數形參
123456789101112131415 | // 1. 形參是一個指針 void myFunction( int *param) { } // 2. 形參是一個已定義大小的'數組 void myFunction( int param[ 10 ]) { } // 3. 形參是一個未定義大小的數組 void myFunction( int param[]) { } |
從函數返回數組
1234 | int * myFunction() { } |
實例
1234567891011121314151617181920 | #include <stdio.h> #include <stdlib.h> /* 要生成和返回隨機數的函數 */ int *getRandom() { static int r[ 10 ]; for ( int i = 0 ; i < 10 ; ++i) { r[i] = rand(); printf( "r[%d] = %d" , i, r[i]); } return r; } int main() { int *p = getRandom(); // 指向整數的指針 for ( int i = 0 ; i < 10 ; i++) { printf( "*(p + %d) : %d" , i, *(p + i)); } return 0 ; }</stdlib.h></stdio.h> |
1234567891011121314151617181920 | r[ 0 ] = 16807 r[ 1 ] = 282475249 r[ 2 ] = 1622650073 r[ 3 ] = 984943658 r[ 4 ] = 1144108930 r[ 5 ] = 470211272 r[ 6 ] = 101027544 r[ 7 ] = 1457850878 r[ 8 ] = 1458777923 r[ 9 ] = 2007237709 *(p + 0 ) : 16807 *(p + 1 ) : 282475249 *(p + 2 ) : 1622650073 *(p + 3 ) : 984943658 *(p + 4 ) : 1144108930 *(p + 5 ) : 470211272 *(p + 6 ) : 101027544 *(p + 7 ) : 1457850878 *(p + 8 ) : 1458777923 *(p + 9 ) : 2007237709 |
指向數組的指針
123456789101112131415 | #include <stdio.h> int main() { double balance[ 5 ] = { 1000.0 , 2.0 , 3.4 , 17.0 , 50.0 }; double *p = balance; // balance和p指向同一塊地址 printf( "使用指針的數組值" ); for ( int i = 0 ; i < 5 ; i++) { printf( "*(p + %d) : %.2f" , i, *(p + i)); } printf( "使用 balance 作爲地址的數組值" ); for ( int i = 0 ; i < 5 ; i++) { printf( "*(balance + %d) : %.2f" , i, *(balance + i)); } return 0 ; }</stdio.h> |
123456789101112 | 使用指針的數組值 *(p + 0 ) : 1000.00 *(p + 1 ) : 2.00 *(p + 2 ) : 3.40 *(p + 3 ) : 17.00 *(p + 4 ) : 50.00 使用 balance 作爲地址的數組值 *(balance + 0 ) : 1000.00 *(balance + 1 ) : 2.00 *(balance + 2 ) : 3.40 *(balance + 3 ) : 17.00 *(balance + 4 ) : 50.00 |