1.当然不是,比较的是字符的ASKII码嘛!
2.p=a+1,p就指向a[1][0]了嘛!p[0][1]不就是6了嘛!
  *(*(p+1)+1不就是p[1][1]嘛!那就是10嘛!
  *(*p-1)+2)不就是p[0][2]嘛!那就是3嘛!
望给分,不甚感激,谢谢.

解决方案 »

  1.   

    1、不是的。
    字符比较是按照内部编码(一般是ASCII码)的值进行的,A<B<C<...<a<b<c<...
    因此 "one"<"three"<"two"
    2、
    int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; 实际上就是:
    int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
    p=a+1,将p指向{{5,6,7,8},{9,10,11,12}}
    因此p[0][1]==5 (答案是6 !?)
    *(*(p+1))+1==p[1][1]==10
    p[-1][2]==3
      

  2.   

    第二个问题,P是一个指针,它指向一个数组,这个数组有四个元素,(p是一个指向指针的指针),所以P是指向 a[0][0]的,p+1指向a[1][0],.......你明白了吗!
      

  3.   

    to MountLion:不会吧?*(*(p+1))+1==p[1][1]??
      

  4.   

    请问指针指向数组到底是什么样的情况?比如有a[2][3]这个二维数组,
    p=a那么p[1][1]是a[?][?]?请告诉我这个p+1指向a[1][0]后,那p[0][1]是a[?][?]
      

  5.   

    1.当然不是,比较的是字符的ASKII码嘛!
    2.p=a+1,p就指向a[1][0]了嘛!p[0][1]不就是6了嘛!
      *(*(p+1)+1不就是p[1][1]嘛!那就是10嘛!
      *(*p-1)+2)不就是p[0][2]嘛!那就是3嘛!
                     ~~~~~~~~~~不好意思,笔误,应是a[0][2],都是复制粘贴惹的祸.