这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界» 论坛首页» 嵌入式开发» 软件与操作系统» 请教大家一个关于C语言优先级别的小问题

共7条 1/1 1 跳转至

请教大家一个关于C语言优先级别的小问题

工程师
2021-08-19 22:44:09 打赏

如题:index = crch ^ *ptr++; 这个赋值运算是不是这样,先把指针*ptr的值+1以后再与crch异或,然后赋值给index,不是很清楚,所以特来咨询!

先谢过了!




关键词: C语言 优先级 运算符

工程师
2021-08-19 22:56:20 打赏
2楼

具体优先级我也忘记了.

不过在这条语句前临crch=5, *ptr=4, 先试试(debug)看index的结果.
不对的话, ptr指向一个数组首地址, 数组[0] = 3, 数组[1] = 5, 再试试看是否是ptr先++

总之, 调试一下就知道了, 我自己就不试了


工程师
2021-08-19 23:01:21 打赏
3楼

这不是几分钟就能解决的事吗?
指针结合数组输出.通过显示看运算结果
然后,加括号,对比一下就知道优先等级了
一般来说,不确定的话,就加括号


工程师
2021-08-19 23:08:35 打赏
4楼

在实际编程中,尽量不要写这种不确定的代码,最好就是一个功能一行,或者一个功能加一个括号,
这样的好处:
一来,是方便于我们自己理解代码,要不然,自己写的代码,过上半个月去维护代码的时候,又要琢磨大半天才能理解:
二来,由于不同的编译器,对一些优先级可能定义不同,结果会造成程序有时正常,有些不正常


工程师
2021-08-19 23:14:36 打赏
5楼

++的优先级是最低的,先*ptr,再^,然后再ptr++


工程师
2021-08-19 23:41:54 打赏
6楼

大家讲解的也是蛮不错的


高工
2021-08-19 23:47:34 打赏
7楼

问题总结的还是蛮到位的


共7条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]