碎碎念(4)

1.typedef定义数组类型

有typedef是类型,没有是变量

typdef int A[8];   =====    typdef int (A)[8];

A b;

2.指针数组

int *a[10];

3.数组指针

    方法1:
    先定义数组类型,再定义数组指针变量
    typedef int A[10];
    A *a;

方法2:
    先定义数组指针类型,再定义数组指针bianl
    typdef int (*A)[10];
    A a;

方法3:
    直接定义数组指针变量
    int (*A)[10];

4.二维数组

int a[][4] = {1,2,3,4,5,6,7,8};
a: 数组第0行首地址
a+i: 数组第i行首地址
*(a+i): 数组第i行首元素地址
*(a+i)+j: 数组第i行第j列元素地址     《===》  &a[i][j]
*(*(a+i)+j): 数组第i行第j列元素        《===》  a[i][j]

5.二维数组是线性存储的(用一维数组方式打印)

6.一维(二维)数组与数组指针

int a[10];
int aa[3][10];

int (*A)[10];
A = &a;            //a:数组首元素地址
A = aa;            //aa:   数组首地址

7.二维数组做函数参数

int a[3][4];                //a: 指向整形数组的指针

//wrong
void printArray(int **a)        //指向整形指针的指针

//ok
void printArray(int a[3][4])
void printArray(int a[][4])
void printArray(int (*a)[4])

8.sizeof测试一维数组、二维数组

原文地址:https://www.cnblogs.com/EngineerZhang/p/9726488.html