自增运算符和数组下标的先后顺序
arr[t++] = 4;arr[++t] = 4;
这两个语句也是遵循以下原则的:
++x ;自增后使用。
x++ :使用后再自增
可是,这都表明了:自增运算符的优先级大于数组下标[],这合理吗?我见过下面一段话:
后缀运算符,包括数组取下标[]、函数调用()、结构体取成员.、指向结构体的指针取成员->、后缀自增++、后缀自减--。如果一个操作数后面有多个后缀,按照离操作数从近到远的顺序(也就是从左到右)依次运算,比如 a.name++ ,先算 a.name ,再++,这里的 .name 应该看成 a 的一个后缀,而不是把 . 看成双目运算符。
单目运算符,包括前缀自增++、前缀自减--、 sizeof 、类型转换()、取地址运算&、指针间接寻址*、正号+、负号-、按位取反~、逻辑非! 。如果一个操作数前面有多个前缀,按照离操作数从近到远的顺序(也就是从右到左)依次运算,比如 !~a ,先算 ~a ,再求!。
求大神给出一个合理的逻辑,我乱了。。。