getchar();
return 0;
}
参数是符合它的要求 2 个指针参数的,但是这个程序却运行不了。开始百思不得其解,为
什么参数的类型都正确但是传不回自己想要的结果。这样只能去看函数原型了。
strcat 函数原型
char *strcat(char *strDest, const char *strScr) //将源字符串加 const,表明其为输
入参数
{
char * address = strDest; //该语句若放在 assert 之后,编译出错
assert((strDest != NULL) && (strScr != NULL)); //对源地址和目的地址加非 0 断
言
while(*strDest) //是 while(*strDest!=’\0’)的简化形式
{ //若使用 while(*strDest++),则会出错,因为++是不受循环
strDest++; //约束的。所以要在循环体内++;因为要是*strDest 最后指
} //
’
向该字符串的结束标志 \0’。
while(*strDest++ = *strScr++) //是 while((*strDest++ = *strScr++)!=’\0’)的
简化形式
{
NULL; //该循环条件内可以用++,
} //此处可以加语句*strDest=’\0’;有无必要?
return address; //为了实现链式操作,将目的地址返回
}
从这句话就知道为什么了
while(*strDest++ = *strScr++)
{
NULL;
}