17. 已知定义:"int a[]={1,2,3,4,5},i,*p=a,*q=p;则下列错误的语句是( ).1. 已知定义:“int a[]={1,2,3,4,5},i,*p=a,*q=p;则下列错误的语句是( c ).A . i=*p-*qB . p=q+2C . i=p+q-3D .i=*(q+2)能解释下每选项的错误点么?

问题描述:

17. 已知定义:"int a[]={1,2,3,4,5},i,*p=a,*q=p;则下列错误的语句是( ).
1. 已知定义:“int a[]={1,2,3,4,5},i,*p=a,*q=p;则下列错误的语句是( c ).
A . i=*p-*q
B . p=q+2
C . i=p+q-3
D .i=*(q+2)
能解释下每选项的错误点么?

A.i = 0.*p - *q 等于 a[0] - a[0] 等于 1 - 1 B.执行完,*p = 3,*q = 1.表示 p 地址指向原来 q 地址的后两个char的地址.C.同类型指针只能相减求得指向的地址之间的元素个数差距,而不能执行加操作.D.i = a[2] ,就是 i...