C语言:定义int a[3][2]={1,2,3,4,5,6};,详解**(a+1)、*(a+1)[0]、(*(a+1))[0]、a[1][0]的值各为多少?

如题所述

它们的值都是3。因为a是指向有2个元素的一维数组的指针,那么——

    **(a+1)——所以,a+1指向了从3开始的二维数组,*(a+1)就是元素3的指针,**(a+1)自然是3。

    *(a+1)[0]——由于[]优先级高于*,所以被解释为*((a+1)[0]),参照1,(a+1)[0]就是元素3的指针,*(a+1)[0]就是元素3。

    (*(a+1))[0]——由1知,*(a+1)是元素3的指针,(*(a+1))[0]就元素3。

    a[1][0]——不用细说,是第1行(0行起)第0个元素,自然是3。

得出结论:当指针p成功指向数组a时,*p与a[0]等价,*(p+1)与a[1]等价,依此类推。

温馨提示:答案为网友推荐,仅供参考
相似回答