①假设
存在结构体
struct
{inta;char*s;}b,*p=b;
指针p指向结构体变量b,
变量b中包含两个成员,
整型成员a和指针成员b,
即指针可以指向结构体中的指针。
~
②指针指向结构体变量成员
~
++p-a等于++(p-a)等于++a
先->再++,
先访问a,再++,
不移动指针,变量增加,a增1。
~
(++p)-a
先++再-,
先++p,再访问a,
先移动指针p,p增1,再访问a。
~
(p++)-a等于p++-a
先->再++,
先访问a,再p++,
先访问a,再移动指针p,p增1。
~
③指针指向结构体指针成员
~
*p-s等于*s
先->再*,
先指向指针s,再转换为s所指变量,
访问指针s所指的变量。
~
*p-s++等于*(p-s)++等于*s++
先->再*,最后++,
先访问s所指的变量,再s++,
先访问s所指的变量,再移动指针,s增1
~
(*p-s)++等于(*s)++
先->再*,最后++,
先访问s所指的变量,再(*s)++,
先访问s所指的变量,再变量增加,*s增1
~
*p++-s等于*(p++)-s
先->再*,最后++,
先访问s所指的变量,再p++,
先访问s所指的变量,再移动指针,p增1