欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

关于 ++跟&一点疑惑

程序员文章站 2023-12-22 16:19:52
...
关于 ++和&一点疑惑
本帖最后由 yinjie_1984 于 2014-11-15 08:22:22 编辑 $a=1;
$b=&$a;
$b=$a++;

//求$a、$b
第二句话的意思是b也指向了a的地址;
第三句话的意思是在使用后a的值加1,所以$b=1;
关键是后面我不了解了$a++,不表示使用后加1,所以现在$a=2;
可是$b的地址和a的地址一样岂不是$b也等于2?还是第三句话后面的$a++根本就是没执行?这道题答案是$a,$b都是1;
比如和这个比较
$a=1;
$b=$a++;
?>
这个不就是$b=1,$a=2
有点晕啊。。。
------解决思路----------------------
$a = 1;
$b = $a++;
var_dump($a, $b);
/*
int(2)
int(1)
*/

$a = 1;
$b = &$a;
$a++;
var_dump($a, $b);
/*
int(2)
int(2)
*/

$a = 1;
$b = &$a;
$b = $a++;
var_dump($a, $b);
/*
int(1)
int(1)
*/

对于 $b = $a++;
将 $a 的值 1 取出赋予 $b,但 ++ 的优先级高于 =,所以取值后先不做赋值,而是做 ++,于是 $a 的值为 2(由于 $b 是 $a 的引用,所以此刻 $b 的值也是 2)
然后做赋值操作,$b 的值就等于 1 了
因为 $b 是 $a 的引用,于是 $a 又被改回了 1
关于 ++跟&一点疑惑

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频


网友评论

文明上网理性发言,请遵守 新闻评论服务协议

我要评论
  • 关于 ++跟&一点疑惑
  • 专题推荐

    上一篇:

    下一篇: