C數組
數組是用來存儲一個固定大小的同類型元素的順序集合。
聲明數組
type arrayName [ arraySize ]
int array[5];
初始化數組
int array[] = {1, 2, 3, 4, 5};
int array[5] = {1, 2, 3, 4, 5};
訪問數組元素
#include <stdio.h>
int main(int argc, const char * argv[]) {
int array[5] = {1, 2, 3, 4, 5};
int i;
for (i = 0; i < 5; i++) {
printf("array中第%d個元素是%d", i, array[i]);
}
}
二維數組
多維數組最簡單的形式是二維數組。一個二維數組,在本質上,是一個一維數組的列表。聲明一個 x 行 y 列的二維整型數組。
下面是一個二維數組,包含 3 行和 4 列:
#include <stdio.h>
int main ()
{
/* 一個帶有 5 行 2 列的數組 */
int a[5][2] = { {0,0}, {1,2}, {2,4}, {3,6},{4,8}};
int i, j;
/* 輸出數組中每個元素的值 */
for ( i = 0; i < 5; i++ )
{
for ( j = 0; j < 2; j++ )
{
printf("a[%d][%d] = %d\n", i,j, a[i][j] );
}
}
return 0;
}
傳遞數組給函數
若想在函數中傳遞數組作爲參數,須以以下三種方式來聲明函數形參。
方式一:形參是一個指針
void function(int *param) {
}
方式二:形參是一個已定義大小的數組
void function(int array[5]) {
}
方式一:形參是一個已定義大小的數組
void function(int array[]) {
}
C 從函數返回數組
C 語言不允許返回一個完整的數組作爲函數的參數。但是,您可以通過指定不帶索引的數組名來返回一個指向數組的指針。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
/* 要生成和返回隨機數的函數 */
int * getRandom( )
{
static int r[10];
int i;
/* 設置種子 */
srand( (unsigned)time( NULL ) );
for ( i = 0; i < 10; ++i)
{
r[i] = rand();
printf( "r[%d] = %d\n", i, r[i]);
}
return r;
}
/* 要調用上面定義函數的主函數 */
int main ()
{
/* 一個指向整數的指針 */
int *p;
int i;
p = getRandom();
for ( i = 0; i < 10; i++ )
{
printf( "*(p + %d) : %d\n", i, *(p + i));
}
return 0;
}