#include <stdio.h>
#include <stdlib.h>  
#include <unistd.h>
//1.静态数组
int i_arr1[3] = {1, 2, 3};

int size = 3;

int  main()
{
  //创建数组的三种方法
  /*1.静态数组
    特点:1.用常量表达式表示数组长度
        2.适用于静态内存和自动内存(可在函数内外定义)
  */
  int i_arr1[3] = {1, 2, 3};

  /*2.变长数组
    特点:1.用变量表达式表示数组长度
        2.只能在自动内存中使用(只能定义在函数内部)
        3.不能在声明数组是对数组初始化
        4.不能被static和extern修饰
  */
  int i_arr2[size] ;
  i_arr2[0] = 1;

  /*3.动态数组-malloc
    特点:1.不会为对象做初始化
  */
  int * ipt;
  ipt = malloc(size * sizeof(int));
  ipt[0] = 99;
  printf("malloc分配的内存:%d===%d\n", *ipt, *(ipt+1) );

  /*4.动态数组-calloc
    特点:1.会为对象做初始化,初始化为0
  */
  int * ipt2 = calloc(3,sizeof(int));
  printf("calloc分配的内存:%d===%d\n", *ipt2, *(ipt2+1) );



  return 0;
}