下列语句实现将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)
展开
 我来答
DavidCai0316
2020-03-10 · TA获得超过973个赞
知道小有建树答主
回答量:311
采纳率:85%
帮助的人:104万
展开全部

答案选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分别指向字符数组首元素的地址,先自加,就会指向下一个字符的地址,很明显是不正确的。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式