mian {char p[20]={'a','b','c','d'},q[]="abc",r[]="abcde"; strcpy(p+strlen(q),r);strlen(p,q);
问题描述:
mian {char p[20]={'a','b','c','d'},q[]="abc",r[]="abcde"; strcpy(p+strlen(q),r);strlen(p,q);
printf("%d%d\n",sizeof(p),strlen(p);
执行程序后,请问p中的内容是什么?
答
q[]="abc"; strlen(q) 为 3,
p+strlen(q)指向 p+3, 就是 p[3],
strcpy(p+strlen(q),r);就是 把 r[]="abcde" 复制到 p[3]开始的以后那些单元里,p[3] 原是'd',
复制后,p="abcabcde"
sizeof(p),为 20-- 变量声明时 定了 p[20].
strlen(p);为 8,内容 是 "abcabcde“