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

这是啥意思刚看见的

a14290719 发布于 2011-11-26 01:49, 598 次点击
int a=10;
    int *s=&a;
    int *&e=s;  
      *e=24;
     int y=354;
      int *a1=&y;
      e=a1;
      cout<<"a="<<a<<"s="<<*s<<"e="<<*e<<"y="<<y<<"a1="<<*a1;
输出的结果是a的值是24没有改变,其他的都改变了都是354  e指向a1 354 *s的值都变了 为啥a的没变
2 回复
#2
qq6054122542011-11-26 08:25
因为最后e=a1把s指向a1,a的值当然不会变
#3
hxcet2011-11-26 09:19
e=a1=&y,而e又是s的引用,所以你对e的这次改变使s也变了,最后s=e=a1=&y,即最后s已经不指向a了,所以程序改变了s和e使*s=*e=*a1=y=354,而a不被任何指针指向,所以a不变
1