数组

初始化方式:
int a[3] ={10,9,6};
int a[3]={10,9};
int a[]={11,7,6};
int a[4]={[1]=11,[0]=7};

常见错误:

    int a[];
    int [4]a;
    int a[b];
    a[10]=0;
    a={10,11};
    a[4]={10,9,8,5};
//只有在定义时才可以全部初始化
内存分配
存储内存分配,内存的分配是从高地址到低地址,数组元素是从低到高。

1、计算元素个数:
例:
int ages[]={10,11,12};
int count = sizeof(ages)/sizeof(int);
2、数组下标从0开始:
例:
int a[10]
a[10] =11;//错误写法
3、定义数组与数组元素的区别
定义数组 数组名前有类型修饰符 。 
数组元素,不带类型修饰符

 
数组与函数
1、 数组作为函数参数,可以省略元素个数
2、 数组作为函数参数,传递是整个数组的地址,修改函数形参数组元素的值,会影响到外面的实参数组
例 1:
void change(int array[])
{
    //printf("array==%p ", array);
    array[0] = 100;
}
void change2(int n)
{
    n = 100;
}
int main()
{
    int ages[6] = {10, 11, 10, 11, 10, 11};
    //printf("ages==%p ", ages);
    change(ages);
    //change2(ages[0]);
    printf("%d ", ages[0]);
    return 0
;
}
例 2:
int maxOfArray(int array[], int length)
{
    // 数组当做函数参数传递时,会当做指针变量来使用,指针变量在64bit编译器环境下,占据8个字节
    int size = sizeof(array);//在调用函数时,不可以这样求数组长度
    printf("array=%d ", size);
    return 0;
}

二维数组:
初始化方式:
int a[3][4]={1,2,3,4,5,6};
int a[3][4]={{},{},{}};
int a[][5]={3,12,13,2,21,1};
注意错误:
int a[3][4];
 a[3] ={};//下标最高为2
原文地址:https://www.cnblogs.com/Alling/p/3971398.html