linux c 结构体参数,Linux C语言结构体

48129372e0a0f259d25f005978c4941c.png

慕斯卡006383

2021-03-17

0c7c54c260664d4f8c110bbbce2c2d32.png结构体 数组 指针运用

0赞 · 0采集

48129372e0a0f259d25f005978c4941c.png

慕斯卡006383

2021-03-17

(* w). 指针变量引用成员,可用 -> 代替

0赞 · 0采集

42a0949399d8e543d8f66bc476971292.png

Ocelot

2020-01-27

结构体指针:

指向结构体变量的指针:

eg.

struct weapon * w;

w = &weapon;

printf("name=%s\n",(*w).name)//或w->name

0赞 · 0采集

4adfb8b18de63c45015169fbbcad7b67.png

慕用4518114

2019-09-10

3种调用成员变量的方法:结构体变量名称.成员变量名

(*p).成员变量名

p->成员变量名

指针p=weapons;

struct weapon weapons[2]={{"name1",100,200},{"name2",100,200}};

printf("%s\n",p->name);//此时输出为weapons[0].name,即name1

p++;//指向了weapons[1]

1赞 · 1采集

73b61b04900a894ccceed50214ca7c82.png

qq_慕勒0516037

2019-05-27

结构体指针

struct weapon *w;

w=&weapon_1;

(*w).name表示指向结构体中的成员()不能省略,.的优先级大于*的优先级,w->name

*w表示指向结构体变量

结构体数组指针

struct weapon *p;

p=weapon_2;

p->name既是weapon_2[0].name

p++既是weapon_2+1,指向了weapon_2[1]

0赞 · 0采集

859c7835422b1475016da719d24fad5e.png

尘中尘27

2019-03-05

struct weapon weapon_2[2] = {{},{}};

// weapon_2 为 weapon 数组第一个元素的地址,故

struct weapon * p;

p = weapon_2;

p->name // 相当于weapon_2[0].name

p++; // 则相当于 weapon_2[1].name

0赞 · 0采集

52340d043fe5cdfc3a7fe1a274b85e82.png

慕神2511819

2019-01-02

若要指向结构体中的任意一个变量,有如下四种方法:

e.g struct weapon weapon_1{"weapon name"}weapon_1.name

struct weapon (*w); w =&weapon name;  (*w).name;

struct weapon (*w); w =&weapon name;  w->name;

struct weapon *p;p=weapon_2;(指针访问该数组第一个数据的位置)

0赞 · 0采集

adc7f452c3702f4b67cad53973ebad6a.png

13sai

2018-12-31

因为结构体数组名本身就是指针地址 所以赋值给指针时 前面不用加&

截图

0赞 · 0采集

52340d043fe5cdfc3a7fe1a274b85e82.png

慕神2511819

2018-12-26

结构体指针

指向结构体的指针e.g struct weapon *w;

w=&weapon_1;

printf("name=%s\n",(*w).name/w->name/weapon_1.name);

weapon_2既为一维数组(其中包含两个结构体各为两个数组中的元素),又为指向该数组中第一个元素的指针。

0赞 · 0采集

c6daafbca02e9eeba8e3adf6cdd343c5.png

肖福华

2018-10-21

struct weapon * w;//声明一个指向struct weapon类型的指针变量

w=&weapon_1;         //让w指向weapon_1

*w表示w指向的变量weapon_1;

(*w).name即是weapon_1.name,也可以w->name

struct weapon *p;  //声明一个指向struct weapon变量的指针

p=weapon_2;        //weapon_2是数组weapon_2[2];此处指向该数组的第一个也即weapon_2[0];

同样,也可以p->name或weapon_2[0].name;

若要指向第二个,p++;

0赞 · 2采集

7c68c64ebebf7deb4549231764ee3aae.png

lsgwr

2018-05-07

访问结构体成员,用(*w).name还是w->name还是w.name都是可以地,C语言底层进行了屏蔽

截图

0赞 · 0采集

fcc9d565203aac1861fccafd1f24a3de.png

慕娘4466587

2018-05-05

初始化结构体成员:struct 名称 变量名 = {"字符数据",数据,数据....};

访问结构体成员:变量名.结构体成员

结构体数组,每个元素都是一个结构体类型的数据,每个结构体成员类型数量相同。

0赞 · 0采集

8023d646d69a1ae4a59c32e489b2a331.png

无所谓罗罗

2018-04-08

w->name 可以替代(*w).name

0赞 · 0采集

91972cfec250896ea431a0b61766e426.png

慕粉1441471043

2018-03-26

结构体指针

截图

0赞 · 0采集

c93053235831e82262daa2bc4ce8dbec.png

陈以一_

2018-03-09

三种访问结构体成员的方法;

结构体指针, 结构域体数组指针

截图

0赞 · 0采集

cd9df9d00e4add05c1f90c002ec8e6c8.png

VanCool无邪

2018-02-27

指针->成员,调用

截图

0赞 · 0采集

ef7da9963e9dcb1116d3151954c9f695.png

qq_梁梁_0

2018-02-24

w->name

截图

0赞 · 0采集

ef7da9963e9dcb1116d3151954c9f695.png

qq_梁梁_0

2018-02-24

(*w).name

截图

0赞 · 0采集

7d34f688241c87138f1c87ea9ff16e1d.png

慕斯卡447355

2018-01-05

struct weapon *w;

printf(“name=%s\n”, (*w).name);

结构体指针的使用。

截图

0赞 · 1采集

99654214bb6ca9c480f0e8d701b64bc6.png

HE_void_0

2017-12-19

结构体

struct {

char prict(rpk);

int atk;

}

0赞 · 0采集

fa7d8a70489920771d8c8b81212adcf1.png

white_3_week

2017-11-30

指向结构体数组的指针

截图

0赞 · 0采集

fa7d8a70489920771d8c8b81212adcf1.png

white_3_week

2017-11-30

结构体指针

截图

0赞 · 0采集

d24c6aca5719a75fd06dc98476492565.png

AugusYang

2017-11-08

赋值结构体数组时没有&符号,默认指向[0]

0赞 · 0采集

cec176437bfa0508e6133591d955d770.png

jresm骏

2017-09-17

结构体指针

截图

0赞 · 0采集

235272ff470928cfa39aa66ad15e668e.png

qq__262

2017-09-01

结构体指针对,结构体数组的运用

截图

0赞 · 0采集

235272ff470928cfa39aa66ad15e668e.png

qq__262

2017-09-01

指针运用的结果

截图

0赞 · 0采集

235272ff470928cfa39aa66ad15e668e.png

qq__262

2017-09-01

结构体指针,->指向运算符

截图

0赞 · 0采集

257fb0f5898e47d57916455249300cc6.png

矢乐志

2017-08-06

struct stu{char name;}stu_1;

struct stu* w=&stu_1;

(*w).name;

w->name;

stu_1.name;

截图

0赞 · 0采集

a45ab8c7bb758624484b58d379f5b2d0.png

慕后端2383128

2017-08-02

struct 结构体名 xx{

char name[20];//在定义数组时name[20]表示长度20,而数组中的元素下标是从namep[0]开始。

}

struct 结构体名 xx;

xx={"zeng"};//其中只有一组元素时

struct 结构体名 *p;//指针调用

p=&xx;//&不能省略。

printf("%s",(*p).name);等价于printf("%s",p->name);等价于(%s",xx.name);

xx[2]={{"zeng"},{shuai}};//xx中有多组元素

struct 结构体名 *p;//指针调用

p=xx;//这里&省略,p指向的是xx[0]即第一组元素。

printf("%s",p->name);//p->name即为xx[0].name

p++;//表示xx +1 即输出xx[1];

printf("%s",p->name);//即xx[1].name

0赞 · 0采集

72951afd30baa49ba30009e40e7f7a93.png

至繁归于至简_

2017-08-01

p=weapon_2而不是p=&weapon_2这部分是有难点的,数组的名字代表了这个数组的内存首地址,数组括号内的长度代表了数组的单元数,数据类型是int的话就按照int类型(32位系统上是4个字节)乘以单元数的长度,如果数据类型是结构体的话就按照结构体的长度乘以单元的长度。

总之数组名字代表了这个数组的内存首地址

p++,不是内存位置右移了一个字节,而是右移了一个单元长度的结构体weapon的内存长度。所以就不难理解为什么右移到了第二个结构体实例的首地址上了

2赞 · 1采集

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值