6个回答
2013-04-16
展开全部
结构体变量的定义 结构体是一种数据类型(像int、char、flaot是数据类型一样),可以用它定义变量。
用结构体类型定义变量的方式有三种:一、先定义结构体类型,再定义变量一般形式:struct 结构体名
{
类型标识符 成员名;
类型标识符 成员名;
…………….};
struct 结构体名 变量名表列;
例、struct student
{
int num; /* 学号 */
char name[20]; /* 姓名 */
char sex; /* 性别 */
int age; /* 年龄 */
float score; /* 成绩 */
char addr[30]; /* 地址 */
}; struct student student1, student2;结构体变量中的各成员,在内存中顺序存放。结构体变量所占内存大小用运算符sizeof计算。 例、printf(" %d %d \n",sizeof(struct student), sizeof(student1));为了方便,可以这样定义结构体变量:#define STUDENT struct studentSTUDENT
{
int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
}; STUDENT student1, student2;二、在定义类型的同时定义变量一般形式:struct 结构体名
{
类型标识符 成员名;
类型标识符 成员名;
…………….
}变量名表列;
例:struct student
{
int num; /* 学号 */
char name[20]; /* 姓名 */
char sex; /* 性别 */
int age; /* 年龄 */
float score; /* 成绩 */
char addr[30]; /* 地址 */
}student1, student2;
三、直接定义变量一般形式:struct
{
类型标识符 成员名;
类型标识符 成员名;
…………….
}变量名表列;(用无名结构体直接定义变量只能一次)
例:struct
{
int num; /* 学号 */
char name[20]; /* 姓名 */
char sex; /* 性别 */
int age; /* 年龄 */
float score; /* 成绩 */
char addr[30]; /* 地址 */
}student1, student2;
用结构体类型定义变量的方式有三种:一、先定义结构体类型,再定义变量一般形式:struct 结构体名
{
类型标识符 成员名;
类型标识符 成员名;
…………….};
struct 结构体名 变量名表列;
例、struct student
{
int num; /* 学号 */
char name[20]; /* 姓名 */
char sex; /* 性别 */
int age; /* 年龄 */
float score; /* 成绩 */
char addr[30]; /* 地址 */
}; struct student student1, student2;结构体变量中的各成员,在内存中顺序存放。结构体变量所占内存大小用运算符sizeof计算。 例、printf(" %d %d \n",sizeof(struct student), sizeof(student1));为了方便,可以这样定义结构体变量:#define STUDENT struct studentSTUDENT
{
int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
}; STUDENT student1, student2;二、在定义类型的同时定义变量一般形式:struct 结构体名
{
类型标识符 成员名;
类型标识符 成员名;
…………….
}变量名表列;
例:struct student
{
int num; /* 学号 */
char name[20]; /* 姓名 */
char sex; /* 性别 */
int age; /* 年龄 */
float score; /* 成绩 */
char addr[30]; /* 地址 */
}student1, student2;
三、直接定义变量一般形式:struct
{
类型标识符 成员名;
类型标识符 成员名;
…………….
}变量名表列;(用无名结构体直接定义变量只能一次)
例:struct
{
int num; /* 学号 */
char name[20]; /* 姓名 */
char sex; /* 性别 */
int age; /* 年龄 */
float score; /* 成绩 */
char addr[30]; /* 地址 */
}student1, student2;
展开全部
结构体是一种新数据类型,属构造类型,它由若干类型各异的“成员”组成;描述这些“成员”可以使用任何基本数据类型,甚至是另外一种构造数据类型都行。
定义结构类型使用关键字“ struct”。
下边几行定义结构类型 person ,并用该类型定义结构变量 zhangshan 和结构数组 class_one[100] :
struct person
{
char name[20]; /* 定义姓名 */
char color[10]; /* 定义肤色 */
char sex[2]; /* 定义性别 */
int age; /* 定义年龄 */
}; /* 注意这里有分号 */
struct person zhangshan, class_one[100];
现在,再定义一个商品结构类型 goods ,设商品包含属性有:商品名、商品代码、厂商、单价、质量。把相同类型的成员定义在一行, goods 可定义如下:
struct goods
{
char goodsname[15], goodcode[15], companyname[30] ;
float price, weight ;
} ;
struct 是结构体的关键字, goods 是结构体名,花括号内的所有变量是这个结构体的成员。这种写法虽然节省了程序行,但降低了可读性,故不建议初学者这样写。
综上,结构体类型简称为结构类型,其定义格式为:
struct < 结构体名 >
{
类型 成员 1;
类型 成员 2;
……
};
二、结构体类型变量的定义
结构体变量简称为结构变量,它由结构类型定义,有三种定义方法。下面以定义结构类型 book 和结构变量 mybook 、 storybook 为例说明之。
1. 先定义结构类型,再定义结构变量。
struct book /* 定义结构体类型 */
{
char bookname[20];
float price;
char publisher[20];
char author[10];
} ;
struct book mybook, storybook;
用这种方法定义结构变量,是最常用的方法,但须注意不能省略关键字“ struct ”。还可以在定义结构变量的同时给它的成员赋初值。如:
struct book /* 定义结构体类型 */
{
char bookname[20];
float price;
char publisher[20];
char author[10];
} ;
struct book mybook = { “maths”, 24.7, “ 电子社 ”, “zhao” }, storybook;
则, mybook 变量的 price = 24.7 。
2. 定义结构类型的同时定义结构变量。
struct book /* 定义结构体类型 */
{
char bookname[20];
float price;
char publisher[20];
char author[10];
} struct book mybook, storybook;
3. 不定义结构类型,直接定义结构变量。
struct /* 不定义结构类型名 */
{
char bookname[20];
float price;
char publisher[20];
char author[10];
} struct book mybook, storybook;
需要说明的是,当某结构类型的成员又是另外一个结构类型时,称嵌套定义,其定义方法如下:
struct brith_date
{
int month ;
int day ;
int year ;
} ;
struct
{
char name[10] ;
char address[30];
char tel[12];
int age;
struct data birthday;
char sex[3];
} student_01 , employee ;
此例直接定义了 student_01 和 employee 两个变量,但是没有定义此结构体的名字,因此不能再定义与 student_01 和 employee 同类的其它结构变量了。
定义结构类型使用关键字“ struct”。
下边几行定义结构类型 person ,并用该类型定义结构变量 zhangshan 和结构数组 class_one[100] :
struct person
{
char name[20]; /* 定义姓名 */
char color[10]; /* 定义肤色 */
char sex[2]; /* 定义性别 */
int age; /* 定义年龄 */
}; /* 注意这里有分号 */
struct person zhangshan, class_one[100];
现在,再定义一个商品结构类型 goods ,设商品包含属性有:商品名、商品代码、厂商、单价、质量。把相同类型的成员定义在一行, goods 可定义如下:
struct goods
{
char goodsname[15], goodcode[15], companyname[30] ;
float price, weight ;
} ;
struct 是结构体的关键字, goods 是结构体名,花括号内的所有变量是这个结构体的成员。这种写法虽然节省了程序行,但降低了可读性,故不建议初学者这样写。
综上,结构体类型简称为结构类型,其定义格式为:
struct < 结构体名 >
{
类型 成员 1;
类型 成员 2;
……
};
二、结构体类型变量的定义
结构体变量简称为结构变量,它由结构类型定义,有三种定义方法。下面以定义结构类型 book 和结构变量 mybook 、 storybook 为例说明之。
1. 先定义结构类型,再定义结构变量。
struct book /* 定义结构体类型 */
{
char bookname[20];
float price;
char publisher[20];
char author[10];
} ;
struct book mybook, storybook;
用这种方法定义结构变量,是最常用的方法,但须注意不能省略关键字“ struct ”。还可以在定义结构变量的同时给它的成员赋初值。如:
struct book /* 定义结构体类型 */
{
char bookname[20];
float price;
char publisher[20];
char author[10];
} ;
struct book mybook = { “maths”, 24.7, “ 电子社 ”, “zhao” }, storybook;
则, mybook 变量的 price = 24.7 。
2. 定义结构类型的同时定义结构变量。
struct book /* 定义结构体类型 */
{
char bookname[20];
float price;
char publisher[20];
char author[10];
} struct book mybook, storybook;
3. 不定义结构类型,直接定义结构变量。
struct /* 不定义结构类型名 */
{
char bookname[20];
float price;
char publisher[20];
char author[10];
} struct book mybook, storybook;
需要说明的是,当某结构类型的成员又是另外一个结构类型时,称嵌套定义,其定义方法如下:
struct brith_date
{
int month ;
int day ;
int year ;
} ;
struct
{
char name[10] ;
char address[30];
char tel[12];
int age;
struct data birthday;
char sex[3];
} student_01 , employee ;
此例直接定义了 student_01 和 employee 两个变量,但是没有定义此结构体的名字,因此不能再定义与 student_01 和 employee 同类的其它结构变量了。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-04-16
展开全部
结构体是一种用户自定义的数据类型,其实是一组相关变量的集合。例如,要存放学生的信息,包括学号,姓名,性别,成绩等,就可以用结构体变量。在c语言中定义结构体类型及变量如下。先定义结构体类型struct student{int num;char name[10];char sex;float score;};再用结构体类型定义结构体变量,struct student stu;结构体变量成员的引用。stu.numstu.namestu.sexstu.score
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
变量名列表就是在定义结构体时,同时定义了2个或2个以上该结构体类型的变量。
比如
struct 结构体名
{
成员列表
}变量名1,变量名2,变量名3,变量名n;
上面的 变量名1至变量名n就是变量名列表,它多数是由2个或2个以上组成的(也可以只有1个或者不声明变量也行)。
比如
struct 结构体名
{
成员列表
}变量名1,变量名2,变量名3,变量名n;
上面的 变量名1至变量名n就是变量名列表,它多数是由2个或2个以上组成的(也可以只有1个或者不声明变量也行)。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-04-16
展开全部
typedef struct student
{
char name[10];
int sex;
int age;
}student;
上面定义了一个结构体。
student st; //这就定义了一个结构体变量,st是变量的名称,student是上面定义的结构体类型
{
char name[10];
int sex;
int age;
}student;
上面定义了一个结构体。
student st; //这就定义了一个结构体变量,st是变量的名称,student是上面定义的结构体类型
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询