请问C语言中结构名和结构变量是什么?
结构变量怎么用?结构名怎么用呢?我看有的时候没有结构变量,有的时候又有好多,麻烦通俗易懂讲解一下,谢谢大家感激不尽辛苦了。...
结构变量怎么用?结构名怎么用呢?我看有的时候没有结构变量,有的时候又有好多,麻烦通俗易懂讲解一下,谢谢大家感激不尽辛苦了。
展开
4个回答
展开全部
结构可以看成是特殊的数组。
结构名等同数组名。结构变量等同 数组名。-- 通俗易懂吧!
数组 含一组数,它们是同一类型的。整型数组,它的所有元素都是整型。float 数组,它的所有元素都是float型.
结构 含一组数,它们往往 是 不同类型的。 例如,它的成员 有整型,有float型,有 char 型。
有没有结构变量,就同有没有数组变量一样。
你不想用一堆简单变量,而改用数组,就用数组了。同样,你不想用一堆各种类型的简单变量,你就改用结构了。
例如,学生信息:姓名,学号,数学成绩,语文成绩,物理成绩,平均分数,你想把1个学生的这些信息作为一组数,放在一个变量里。你就可以定义一个结构类型,例如喊它struct student. 成员变量名叫 name,num,math,yuwen,wuli,mean.
写出:
struct student{char name[20];int num;float math,yuwen,wuli,mean;} -- 这就是结构。
struct student st1,st2,st3,st4; -- 声明了4个学生的学生信息结构变量,变量名 st1,st2,st3,st4
接下来就可以使用它们了。
至于如何用,自己看书吧。这里只能扼要回答基本问题。
结构名等同数组名。结构变量等同 数组名。-- 通俗易懂吧!
数组 含一组数,它们是同一类型的。整型数组,它的所有元素都是整型。float 数组,它的所有元素都是float型.
结构 含一组数,它们往往 是 不同类型的。 例如,它的成员 有整型,有float型,有 char 型。
有没有结构变量,就同有没有数组变量一样。
你不想用一堆简单变量,而改用数组,就用数组了。同样,你不想用一堆各种类型的简单变量,你就改用结构了。
例如,学生信息:姓名,学号,数学成绩,语文成绩,物理成绩,平均分数,你想把1个学生的这些信息作为一组数,放在一个变量里。你就可以定义一个结构类型,例如喊它struct student. 成员变量名叫 name,num,math,yuwen,wuli,mean.
写出:
struct student{char name[20];int num;float math,yuwen,wuli,mean;} -- 这就是结构。
struct student st1,st2,st3,st4; -- 声明了4个学生的学生信息结构变量,变量名 st1,st2,st3,st4
接下来就可以使用它们了。
至于如何用,自己看书吧。这里只能扼要回答基本问题。
更多追问追答
追问
谢谢前辈。结构名等同数组名。结构变量等同 数组名?这两个不是一样了吗
追答
等同 是指语法 上的 含义,语法上的地位。不是等于。
结构 和 数组 都表示 一组数,只不过 一个是单一类型,另一个是不同类型。
它们的成员,一个称为 元素, 一个称为 成员。
展开全部
#include<stdio.h>
#include<string.h>
struct A
{
char name[16];
int number;
};
int main()
{
A a;
strcpy(a.name,"Hello World!");
a.number=123;
printf("%s,%d\n",a.name,a.number);
return 0;
}
结构相当于C++或者Java的类,跟数组有什么关系?
只是一种自定义的类型。
追问
只学过C 没学过C++和JAVA。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
别人的答案我实在看不懂,所以在别的地方看到后来这里回答一下我的个人理解,如果有问题请指教。
下面的代码每一段的含义都是一样的。
// 情况一:student作为结构体的标识符 常规操作
struct student{
char name[20];
int num;float math,yuwen,wuli,mean;
};
struct student st1, st2, st3;
/**********************分割线*************************/
// 情况二:和上面同样的情况,不过我在定义结构体的时候顺便把st1 st2 st3给声明了。
// 这里后面跟的结构变量st1 st2 st3就是新声明的三个student的实例而已。
struct student{
char name[20];int num;
float math,yuwen,wuli,mean;
} st1, st2, st3;
/**********************分割线*************************/
// 情况三:下面这两个例子用了typedef关键字。简单来说,后面的“st”可以代
// 替"struct student"来进行声明。所以下面两种情况自然是等价的。
// 实际上这里后面跟的并不是“结构变量”,这就是typedef的使用格式罢了,
// 所以虽然看起来很像,实际上和上面的情况没什么关系。
typedef struct student{
char name[20];int num;
float math,yuwen,wuli,mean;
} st;
struct student st1, st2, st3;
/**********************分割线*************************/
typedef struct student{
char name[20];int num;
float math,yuwen,wuli,mean;
} st;
st st1, st2, st3;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
类就像一份说明书
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询