下列语句实现将S2所指字符数组中前n个字符复制到S1所指字符数组中,其中代码不正确的是 · A.*s1++=*s2?
下列语句实现将S2所指字符数组中前n个字符复制到S1所指字符数组中,其中代码不正确的是:A.*s1++=*s2++B.s1[n-1]=s2[n-1]C.*(s1+n-1)...
下列语句实现将S2所指字符数组中前n个字符复制到S1所指字符数组中,其中代码不正确的是 :
A.*s1++=*s2++ B.s1[n-1]=s2[n-1]
C.*(s1+n-1)=*(s2+n-1) D.*(++s1)=*(++s2) 展开
A.*s1++=*s2++ B.s1[n-1]=s2[n-1]
C.*(s1+n-1)=*(s2+n-1) D.*(++s1)=*(++s2) 展开
1个回答
展开全部
答案选D。
解析:
A. *s1++ = *s2++
s2是指针,指向字符数组某个下标的字符的地址,而*s2是指向字符数组的一个字符。即s2是指针,而*s2是一个字符。
代码的意思是把*s2的字符赋给*s1(所指向的一个字符),然后s1和s2自加,即指向下一个字符的地址,所以是正确的。
B. s1[n-1] = s2[n-1]
指向数组的指针,如果加上数组下标运算符,是引用该下标的字符,即这种写法可以认为跟数组的用法一样。
因为数组的下标从0开始,所以从n-1开始,即每次把s2一个字符赋给s1,下标一一对应。所以也是正确的。
C. *(s1+n-1) = *(s2+n-1)
C和B是一样的,只不过B的写法相对容易理解一点。也是正确的。
D. *(++s1) = *(++s2)
s1和s2分别指向字符数组首元素的地址,先自加,就会指向下一个字符的地址,很明显是不正确的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询