理解 strcpy方法

1 char* strcpy(char* strDest, const char* strSrc)
2 {
3  assert((strDest!=NULL) && (strSrc !=NULL));  //strDest和strSrc不为空
4  char* address = strDest;      //保存strDest,用于返回
5  while( (*(strDest++) = *(strSrc++)) != '\0' );  //逐个字符赋值
6  return address;         //返回地址    
7 }

注意:

1、栈上的char数组,数组名就是一个指针,这个指针的指向不能修改,也就是不能加加减减或者赋值,可以通过[]访问数组元素。

2、文本字符串赋值给char指针,这个指针指向的内容不能修改。

3、调用strcpy方法的时候,要保证:

  a、保证两块内存没有重合的地方;

  b、strDest最好有刚刚好的内存,可以容纳strSrc的内容。如果strDest内存大了,造成浪费。如果strDest内存小了,溢出,占到其他的内存,导致未定义行为。

posted on 2014-02-24 19:01  Andy Niu  阅读(249)  评论(0编辑  收藏  举报