结构体变量的使用和引用

解释一下以上图片内容,完全没有看懂。还有,数组名[下标].成员变量名代表什么?... 解释一下以上图片内容,完全没有看懂。
还有, 数组名[下标].成员变量名 代表什么?
展开
 我来答
dongyijun521
推荐于2018-01-11 · TA获得超过360个赞
知道答主
回答量:26
采纳率:0%
帮助的人:30.9万
展开全部

struct student

{

    char name[20];

    char sex;

    int age;

} s1;

这句定义了一个结构体变量s1,这个s1不是基本数据类型的变量。它是一个包含三个部分(字符数组、单字符、整型)的复合数据类型。它的第一个组成部分,就是那个 char name[20],又是由基本数据类型char组成的。你不用太纠结,s1就是一个复合体,里面包含了三种类型的数据。使用(比方赋值、输出等)的时候,你得把他拆开来操作。就是是后面那三行了。

 2.

 第一个问题你若理解开了,那第二个问题你自然就明白了。

你定义了一个数组,该数组元素由一个一个的结构体变量组成。如下:

struct student

{

    char name[20];

    char sex;

    int age;

} s2[10];


那么当你要使用该数组中第5个元素中的sex变量时,是不是得这样使用 

printf("%c",s2[4].sex);

scanf("%s",s2[4].name);


用大白话给你说的,不知道这样子你能不能理解。

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
西橙L
2018-01-11 · TA获得超过1354个赞
知道答主
回答量:29
采纳率:0%
帮助的人:6.2万
展开全部

我能说最佳答案非常坑爹么?

下面我来解释一下他为什么坑爹。

首先C语言是底层语言,既然是底层语言就存在着严谨性,也就是你使用任何内存里面的空间都要说它是装什么的。

比如  int number (number这个变量是用来装整型的)。

比如  char letters(letters这个变量是用来装字符的)。

那么结构体struct student {blablabla……} s1,就可以理解成用来装struct student类型的s1变量。如果你大学老师不是水货的话,那么肯定说过struct student {blablabla……}这段的意思就是定义一个student的类型让它可以像int/char这样的类型使用一样。

所以,一旦你用了struct student {blablabla……} s1定义一个结构体的话,student就是结构类型s1便是结构体变量。

如果是结构体类型(student)的话,我们当然可以这样初始化数据。

struct student s2 = {"wpc",18,"male"};。这句话的潜意思是s2这个地址保存着{blabla……}这样的数据(注:对于楼主的结构体定义我稍微做了下修改,详细参考下图)。

但是你如果用s1 = {"wpc",18,"male"};。对不起,系统会报错,这和你定义s2结构体变量再修改s2 = {"faker",18,"male"}一样会报错。

至于为什么会这样,当你在C语言修改数组、字符串、结构体凡是大于一个内存空间的东西,实际是对该变量赋地址,众所周知s1/s2这样的变量其实保存的数据而不是指针保存的地址。

完。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式