参考答案和解析
正确答案:B
解析: *(w+1)[4]越界了,(w+1)指向二维数组的第二行,因此(w+1)[4]指向二维数组的第5行导致越界;其他选项都能正确表示数组元素,其中选项A:w[0][3];选项C:w[1][0];选项D:w[0][1]。
更多“若有定义:intw[3][5],则以下不能正确表示该数组元素的表达式是______。A.*(*w+3)B.*(w+1)[4]C.*(* ”相关问题
  • 第1题:

    若有定义:

    则以下不能正确表示该数组元素的表达式是( )。

    A.A

    B.B

    C.C

    D.D


    正确答案:A
    本题考查的是通过指针引用二维数组元素。通过一维数组名或指向一维数组元素的指针来引用数组元素有两种写法:a[i]和*(a+i),它们是等价的。这是一种运算符之间的等价转换,就好像a一(b—c)等价于a-b+c一样。知道了这种转换,我们可以将之扩展到二维数组甚至任意维数组上来。因为口运算符的结合性是从左至右的,所以w[i珩]等价于(w[i][j],此时可以先将任意一个口运算符转换为指针形式为(·(w+i))[j]或*(w[i]+j),或者同时转换为*(*(W+i)+j)。上述几种形式都完全等价于w[il[j]。

  • 第2题:

    若有定义: int w[3][5]; 则以下不能正确表示该数组元素的表达式是()

    A.*(&w[0][0]+1)

    B.*(*w+3)

    C.*(*(w+1))

    D.*(w+1)[4]


    *(w+1)[4]

  • 第3题:

    若有定义:int a[4][3], (*prt)[3]=a, *p=a[0];,则不能正确表示数组元素a[1][2]的表达式是:

    A.*(*(prt+1)+2)

    B.*(p+5)

    C.(*(prt+1))[2]

    D.*((*prt+1)[2])


    数组 b 中各元素均为 0

  • 第4题:

    若有定义int a[2][3],*p=a;则以下不能表示数组元素a[1][2]的是()

    A.*(a[1]+2)

    B.*(p[1]+2)

    C.p[5]

    D.*(p+5)


    参考答案:B

  • 第5题:

    36、若有定义: int w[3][5]; 则以下不能正确表示该数组元素的表达式是()

    A.*(&w[0][0]+1)

    B.*(*w+3)

    C.*(*(w+1))

    D.*(w+1)[4]


    1/k×f/k