您现在的位置是:首页 > 创新技术

C语言-结构体与指针移动

智慧创新站 2025-03-08【创新技术】22人已围观

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

①假设

存在结构体

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

很赞哦!(108)