C语言,请用通俗易懂的话讲一下,答案太文艺了,难理解。

2025-03-13 14:39:53
推荐回答(1个)
回答1:

strcat(p, r); 执行之后p[20] = "abcdabcde";
strcpy(p + strlen(q), q);执行后p[20] = "abcabccde"
所以,结果是9

注:strcpy只是复制而已,不会影响字符串长度。

竟然看走眼了,结果是6
题中strcpy(p + strlen(q), q); 这句中虽然p[20] = "abcabccde", 但是P + 3这句将P的地址已经向后移动了3个字符
所以在后面在打印strlen(p)就是从偏移哪里开始读取。

如果printf("%d\n", strlen(p - 3)); 结果就是9