7.24 C语言,有以下程序#include<stdio.h>

main()
{char p[20]={'a','b','c','d'},q[]="abc",r[]="abcde";
stcat(p,r);strcpy(p+strlen(q),q);
printf("%d\n",strlen(p);
}

其中 这 ;strcpy(p+strlen(q),q);是个什么意思

strlen(q)是一个数是q数组的长度,假设为m。
p+strlen(q)是p指针向又移动m位,指向该字符,假设为n。
strcpy(p+strlen(q),q)是把q赋值给p+strlen(q)。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-27
你的代码还是有点问题的呢.

strcat(p, r);

这句是不正常的, 因为 p 没有结尾字符 '\0'; 你应该这样初始化

char p[20] = {'a', 'b', 'c', 'd','\0'};
第2个回答  2013-03-27
srtlen是测试你这个字符串Q的长度,然后用p加上这个长度,然后把q中的字符串复制到P+这个长度的地址处
第3个回答  2013-03-25
strlen(q)的意思是求字符串数组的长度,即数组个数。

p+strlen(q)的意思指针指向字符串数组p的第strlen(q)个地址处,即指向p[strlen(q)]的地址。

strcpy(p+strlen(q),q)的意思是将字符串指针q指向的字符串 复制到 p指针指向的地址处p[strlen(q)]开始的字符串。此题此句执行后,p为a b c a b c
相似回答