#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; }