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

优先级错误引起的报错

程序员文章站 2022-06-24 12:49:01
一 写在开头 1.1 本文内容 记录一次因为运算符优先级错误而引起的报错的原因和解决方法。 二 报错情况,原因和解决方法 今天在写代码的过程中,发现了一个很有意思的报错。报错情况和出错的代码如下图所示。 出错的代码行是第34和35两行。为什么会报错?很简单,因为在上述两行代码中,点(.)运算先于星号 ......

一 写在开头

1.1 本文内容

记录一次因为运算符优先级错误而引起的报错的原因和解决方法。

 

二 报错情况,原因和解决方法

今天在写代码的过程中,发现了一个很有意思的报错。报错情况和出错的代码如下图所示。

优先级错误引起的报错

优先级错误引起的报错

出错的代码行是第34和35两行。为什么会报错?很简单,因为在上述两行代码中,点(.)运算先于星号(*)运算执行了。在执行点运算时(array + i)是一个指向结构体的指针,而取指针所指向对象的成员是不能用点运算的。将上述两行代码改成如下形式,问题解决。

1 (*(array + i)).data = t;
2 (*(array + i)).rank = -1;