答案是10.我想不明白strcpy到底是怎么操作的
1、s+4怎么考虑?
2、s[80]最后究竟变成了什么?
已有声明"int a;char s[80]="123456";",执行语句“strcpy(s+4,"123456");a=strlen(s)
答案:2 悬赏:50
解决时间 2021-03-17 10:29
- 提问者网友:芷芹
- 2021-03-17 06:55
最佳答案
- 二级知识专家网友:许你一世温柔
- 2021-03-17 08:10
s是一个内存地址,指向一个char,内容是"1",即初始字符串的第一个字符,+4代表地址的偏移,即向后四个或s[4](从0开始)。strcpy函数将串"123456"从s[4]开始往后覆盖,a最终变成“1234123456”,长度为10。strlen函数扫描到空字符"\0"(即s[10])时结束并返回10。虽然数组还未结束但strlen函数不再向后计数。
全部回答
- 1楼网友:何必打扰
- 2021-03-17 09:07
我是来看评论的
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯