首页 新闻 会员 周边

找错误 求助

0
悬赏园豆:20 [已关闭问题]

#include <iostream>
using namespace std;
int main()
{
 char str1[]= "I love China !",str2[5],*p1,*p2;
 p1=str1;
 p2=str2;
 for(; *p1!= '\0'; p1++,p2++)
  p2=p1;
 *p2='\0';
 p1=str1;
 p2=str2;
 cout << p1 << endl <<p2;
  return 0;
            
}

 

 

#include <iostream>
using namespace std;
int main()
{
 char str1[]= "I love China !",str2[5],*p1,*p2;
 p1=str1;
 p2=str2;
 for(; *p1!= '\0'; p1++,p2++)
  *p2=*p1;
 *p2='\0';
 p1=str1;
 p2=str2;
 cout << p1 << endl <<p2;
  return 0;
            
}
这两个的区别是什么啊,

茉莉gsy的主页 茉莉gsy | 初学一级 | 园豆:180
提问于:2010-03-29 22:49
< >
分享
其他回答(2)
0

区别就循环体一句:

p2=p1;//传值引用,原值保留,仅操作形参的一个复本。

*p2=*p1;/传地址(或引用),直接操作指针,直接完成对实参的操作,

错误自己找。

邀月 | 园豆:25475 (高人七级) | 2010-03-30 08:42
0

p2 = p1; 是指针赋值,进行这样的赋值后 p2 == p1

*p2 = *p1; 是把指针把指向的值赋给 p2 指针所指向值,赋值后 p2 != p1

匡匡 | 园豆:51 (初学一级) | 2010-03-30 09:31
0

p2 = p1; 指针p1的地址赋值p2

*p2 = *p1; p1的值赋给p2

第一个中的str2始终没有变化,一直为空

第二个中的str2被赋值后等于str1

zfgis | 园豆:217 (菜鸟二级) | 2010-03-30 09:50
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册