注册 登录
编程论坛 C++教室

从参考书上看到这么一个题,执行时却出了问题,请帮忙指出!

雪色朝阳 发布于 2010-03-21 17:00, 444 次点击
#include<stdio.h>
#include<string.h>
main()
{
  char*p1="abc",*p2="ABC",str[50]="xyz";
  strcpy(str+2,strcat(p1,p2));
  printf("%s\n",str);
}
参考书上的答案是xyabcABC
我编译和组建都没有问题,但是执行时却弹出应用程序错误的警告!这是什么原因啊?
还有以上程序中的那个红色部分是什么意思啊?
1 回复
#2
秀痘魔导士2010-03-22 09:22
strcat(p1,p2) 这句就不对了,pi只有三个char的大小,怎么可能把p2追加到它之后?
str+2是指str这个数组的头指针向后移动2个char的长度。
1