根据对称矩阵在数组中的存储方式,数组元素沿主对角线程对称分布,数组元素只需存储一半即可
则a[8][5]的地址为1+2+3+4+5+6+7+5==33
pc是一个数组指针(指向数组的指针),指向列数为5的二维数组,pc=c,表示pc指向二维数组的第一行,pc+1表示向下偏移一行,一行五个元素,*pc得到二维数组c的第一行的首地址,+2表示偏移到c[0][2]的地址,解引用就得到数据2。
c[4][5]可以理解为4个长度为5的一维数组,这四个一维数组的地址都要用数组指针存放。
指针数组&数组指针
指针数组和数组指针
主要看最前面修饰的是类型还是类型指针,比如int *a[3]
,就是指针数组,数组的每个元素都是int *
,int (*a)[3]
就是一个指向列数为3的二维数组指针,数组里的值为int类型,可以想作int [3](*a)
会更清晰