二维数组加一和二维数组加一解引用

 

 

 

对于上面定义的二维数组,加上和不加上解引用,结果都是一样的,

aaint [2][5]类型,当aa按指针运算时,aa退化为指针类型int *[5]aa+1结果是指向数组第二行的首地址(即元素5的地址),其类型仍然是int *[5]

对其解引用*(aa+1),得到的是int [5]类型,可以隐式转化为int *类型,其值仍然是指向数组第二行的首地址
不对其解引用,那么(int*)(aa+1)相当于强制类型转换,即把int *[5]类型的指针强制转换为int*类型的指针,由于二维数组元素在内存是连续排列的,这样强制转换是没有问题的。