7.若有说明语句char a[]="It is mine";char *p="It is mine";则以下不正确的叙述

1个回答

  • 7:答案b

    char *p="It is mine"; 系统已经分配好内存,如果字符串的长度不受限制会造成指针溢出.

    8:答案b strcmp函数比较字符串的大小,s1+=2;s2+=2;后,字符串变成了:*s1="DeG"; *s2="dEg"; strcmp函数开始比较,由于s1的第一个字符是D,值为68,s2的第一个字符是d,值为100,所以strcmp判定,s1比较小,返回负数.

    9:答案c

    这个程序的本意是想把字符串倒过来,也就是希望得到答案a,但是程序犯了个错误,看t=*s1++;*s1=*s2--;*s2=t; 这一句,t=*s1++;这个时候s1++,那么*s1=*s2--的时候;赋值的时候实际上已经把指针的位置后挪了,而且这个时候*s2--又把指针前挪,于是1717的挪个不停,改成这样就是答案a了,t=*s1;*s1=*s2;*s2=t;s1++;s2--;