结构体浅谈
2015-07-06 20:10
176 查看
结构体:
1、
什么是结构体?
a) 结构体使用户根据实际需要来定义的一些符合的新的数据类型。把基本数据类型组合在一起,形成的一个新的复合数据类型。
//定义一个学生类型的结构体
struct Student
{
int age;
char sex;
float score;
};
2、
为什么要用结构体?
a) 为了表示复杂的数据类型,而基本类型无法满足实际需求。
b) 逻辑上讲一个学生的成绩、性别、成绩应该是一个整体,而在基本类型中并没有这样一种数据类型能表示这样的学生。因此我们就需要自己构造一个这样的数据类型。
3、
定义一个结构体就相当于定义了一个数据类型。但是并没有开辟空间。也就是没有定义变量。
a) 但是在定义变量的时候在前面需要加上struct
4、
如何定义一个结构体
//定义一个学生类型的结构体
struct Student
{
int age;
char sex;
float score;
};
在其他的函数中使用的:structStudent str;
这是最常用的一种定义方式。
//定义一个学生类型的结构体
struct Student
{
int age;
char sex;
float score;
} stu_02; 在定义结构体的同时定义了结构体的变量名字。第二种定义方式
//定义一个学生类型的结构体
struct
{
int age;
char sex;
float score;
} stu_03; 不用数据类型名,直接定义变量名。第三种定义方式。
5、
初始化结构体。
a) 如果没有在定义的时候进行全部变量的初始化,在后来再进行赋值的时候就只能进行单个赋值。
6、取出结构体中的变量。
#include "stdio.h"
//定义一个学生类型的结构体
struct Student
{
int age;
char sex;
float score;
};
int main(void)
{
struct Studentstu={18,'F',60};
printf("%d,%c,%f\n",stu.age,stu.sex,stu.score);
struct Student*pStu=&stu;
pStu->age=30;
printf("%d\n",pStu->age);
return 0;
}
结构体中的变量的取值分为两种方式:
1、
结构体变量名.变量名(内部)
2、
结构体指针变量->变量名(内部)
如果在编译器中没有提示的话,编译一下就会出现。
如上的代码中。pStu->age等价于(*pStu).age等价于stu.age。
pStu->的含义就是*pStu。而*pStu就代表pStu指向的变量stu。因此上述三个是等价的。
1、
什么是结构体?
a) 结构体使用户根据实际需要来定义的一些符合的新的数据类型。把基本数据类型组合在一起,形成的一个新的复合数据类型。
//定义一个学生类型的结构体
struct Student
{
int age;
char sex;
float score;
};
2、
为什么要用结构体?
a) 为了表示复杂的数据类型,而基本类型无法满足实际需求。
b) 逻辑上讲一个学生的成绩、性别、成绩应该是一个整体,而在基本类型中并没有这样一种数据类型能表示这样的学生。因此我们就需要自己构造一个这样的数据类型。
3、
定义一个结构体就相当于定义了一个数据类型。但是并没有开辟空间。也就是没有定义变量。
a) 但是在定义变量的时候在前面需要加上struct
4、
如何定义一个结构体
//定义一个学生类型的结构体
struct Student
{
int age;
char sex;
float score;
};
在其他的函数中使用的:structStudent str;
这是最常用的一种定义方式。
//定义一个学生类型的结构体
struct Student
{
int age;
char sex;
float score;
} stu_02; 在定义结构体的同时定义了结构体的变量名字。第二种定义方式
//定义一个学生类型的结构体
struct
{
int age;
char sex;
float score;
} stu_03; 不用数据类型名,直接定义变量名。第三种定义方式。
5、
初始化结构体。
a) 如果没有在定义的时候进行全部变量的初始化,在后来再进行赋值的时候就只能进行单个赋值。
6、取出结构体中的变量。
#include "stdio.h"
//定义一个学生类型的结构体
struct Student
{
int age;
char sex;
float score;
};
int main(void)
{
struct Studentstu={18,'F',60};
printf("%d,%c,%f\n",stu.age,stu.sex,stu.score);
struct Student*pStu=&stu;
pStu->age=30;
printf("%d\n",pStu->age);
return 0;
}
结构体中的变量的取值分为两种方式:
1、
结构体变量名.变量名(内部)
2、
结构体指针变量->变量名(内部)
如果在编译器中没有提示的话,编译一下就会出现。
如上的代码中。pStu->age等价于(*pStu).age等价于stu.age。
pStu->的含义就是*pStu。而*pStu就代表pStu指向的变量stu。因此上述三个是等价的。
相关文章推荐
- java问题查找------从源头查找
- HDU1300DP
- 安卓平台搭建
- malloc/free与new/delete的区别
- oracle实现分页-- 红黑
- 随笔
- 黑马程序员——java基础---集合(第16天)
- begingthread afxbeginthread createthread
- 塑造职业品牌培训-记录
- 黑马程序员 ————第一天
- selenium2(WebDriver) API
- Ubuntu点滴--apt-get update和upgrade的作用
- 记录
- 文章标题
- Android TelephonyManager类
- appium for windows 环境搭建
- 修改mysql 表的字符编码
- ubuntu 下mysql 设置允许远程连接
- OJ嘻唰唰虚函数-计算图形面积
- 50个Demo展示HTML5无穷的魅力