C语言学习笔记 - 数组

C数组

数组是用来存储一个固定大小的同类型元素的顺序集合。

声明数组

type arrayName [ arraySize ]
int array[5];

初始化数组

int array[] = {1, 2, 3, 4, 5};

int array[5] = {1, 2, 3, 4, 5};

访问数组元素

#include 

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 列:

C语言学习笔记 - 数组_第1张图片

#include 

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 
#include 
#include 

/* 要生成和返回随机数的函数 */
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;
}

你可能感兴趣的:(C)