经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » C++ » 查看文章
书上关于*(p++)表达式的几种变形形式的思考题
来源:cnblogs  作者:裏表異体  时间:2018/11/20 10:37:55  对本文有异议

代码:

int main()
{
int a[10] = { 1,2,3,4,5,6,7,8,9,10 };
int *p = &a[3];
cout << "*p++ = " << *p++ << endl;

//因为++的优先级比*相等,但由于*和++运算符都是右结合性(从右向左),所以该表达式相当于*(p++),先返回p给*读取a[3]的值,p再自增,指向a[4]

cout << "*(++p) = " << *(++p) << endl;
//p先自增,指向a[5],再返回给*,输出a[5]的值6

cout << "*++p = " << *++p << endl;
//该表达式与上一行表达式一样,但是由于上面p已经指向a[5],所以这行p指向a[6],输出7

cout << "(*p)++ = " << (*p)++ << endl;
//先读取a[6]的值返回给<<输出7,a[6]的值再自增,变成8

cout << "++(*p)= " << ++(*p) << endl;
//先读取a[7]的值8返回给++,a[7]变成9,再输出9

system("pause");
}

----------------------------------------------------------------------------------------------------

输出结果:

 

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号