结构体的学习
来源:互联网 发布:端口被系统占用 编辑:程序博客网 时间:2024/05/17 13:43
使用结构可以把不同类型的值存储在一起。
数组元素可以通过下标访问,这只是因为数组的元素长度相同。由于结构的成员可能长度不同,所以不能使用下标来访问他们,相反,每个结构体都有自己的名字,他们是通过名字访问的。
struct{
int a;
char b;
float c;
}x;
这个声明创建了一个名叫x 的变量,包含三个成员:一个整数、一个字符和一个浮点数。
struct{
int a;
char b;
float c;
}y[20],*z;
这个声明创建了y和z。y是一个数组,它包含了20个结构体。z是一个指针,它指向这个类型的结构。
标签允许多个声明使用同一个成员列表,并且创建同一类型的结构。
struct SIMPLE{
int a;
char b;
float c;
}
这个声明把标签SIMPLE和这个成员列表联系在一起。该声明并没有提供变量列表,所以它并未创建任何变量。
struct SIMPLE x;
struct SIMPLE y[20],*z;
这些声明使用标签来创建变量。它们创建和最初两个例子一样的变量,但存在一个重要的区别 -----现在x、y、z都是同一种类型的结构变量。
typedef struct{
int a;
char b;
float c;
}simple;
simple x;
simple y[20],*z;
提示:如果想在多个源文件中使用同一种类型的结构,应该把标签声明或typedef形式的声明放在一个头文件中。当源文件需要这个声明时可以使用#include指令把那个头文件包含进来。
struct COMPLEX{
float f;
int a[20];
long *lp;
struct SIMPLE s;
struct SIMPLE sa[10];
struct SIMPLE *sp;
};
一个结构体的成员的名字可以和其他结构的成员的名字相同,所以这个结构的成员a并不会与struct SIMPLE s的成员a冲突。
结构体成员的直接访问
结构变量的成员是通过点操作(.)访问的。
struct COMPLEX comp;
((comp.sa)[4]).c
comp.sa[4].c
结构成员的间接访问
点操作符的优先级高于间接访问操作符,所以必须在表达式中使用括号,确保间接访问的首先执行。
void func( struct COMPLEX *cp);
(*cp).f
这个概念有点惹人厌,所以C语言提供了一个更为方便的操作符来完成这项工作->操作符(也成箭头操作符)。左操作数必须是一个指向结构的指针。
cp->f
cp->a
cp->s
数组元素可以通过下标访问,这只是因为数组的元素长度相同。由于结构的成员可能长度不同,所以不能使用下标来访问他们,相反,每个结构体都有自己的名字,他们是通过名字访问的。
struct{
int a;
char b;
float c;
}x;
这个声明创建了一个名叫x 的变量,包含三个成员:一个整数、一个字符和一个浮点数。
struct{
int a;
char b;
float c;
}y[20],*z;
这个声明创建了y和z。y是一个数组,它包含了20个结构体。z是一个指针,它指向这个类型的结构。
标签允许多个声明使用同一个成员列表,并且创建同一类型的结构。
struct SIMPLE{
int a;
char b;
float c;
}
这个声明把标签SIMPLE和这个成员列表联系在一起。该声明并没有提供变量列表,所以它并未创建任何变量。
struct SIMPLE x;
struct SIMPLE y[20],*z;
这些声明使用标签来创建变量。它们创建和最初两个例子一样的变量,但存在一个重要的区别 -----现在x、y、z都是同一种类型的结构变量。
typedef struct{
int a;
char b;
float c;
}simple;
simple x;
simple y[20],*z;
提示:如果想在多个源文件中使用同一种类型的结构,应该把标签声明或typedef形式的声明放在一个头文件中。当源文件需要这个声明时可以使用#include指令把那个头文件包含进来。
struct COMPLEX{
float f;
int a[20];
long *lp;
struct SIMPLE s;
struct SIMPLE sa[10];
struct SIMPLE *sp;
};
一个结构体的成员的名字可以和其他结构的成员的名字相同,所以这个结构的成员a并不会与struct SIMPLE s的成员a冲突。
结构体成员的直接访问
结构变量的成员是通过点操作(.)访问的。
struct COMPLEX comp;
((comp.sa)[4]).c
comp.sa[4].c
结构成员的间接访问
点操作符的优先级高于间接访问操作符,所以必须在表达式中使用括号,确保间接访问的首先执行。
void func( struct COMPLEX *cp);
(*cp).f
这个概念有点惹人厌,所以C语言提供了一个更为方便的操作符来完成这项工作->操作符(也成箭头操作符)。左操作数必须是一个指向结构的指针。
cp->f
cp->a
cp->s
1 0
- 结构体的学习
- 结构体的学习
- 结构体的学习
- C语言结构体的学习
- c语言结构体的学习
- OC学习笔记:常用的结构体
- Struct结构体的使用学习
- go结构体的学习和使用
- C#结构的学习
- C#结构的学习
- [C学习]结构体
- 结构体学习网站
- 结构体学习
- 结构体学习
- 结构体学习
- 结构体学习
- 结构体学习要点
- 结构体学习2
- getBackground().setAlpha所导致问题
- ArrayList源码分析
- hdu 3746 Cyclic Nacklace(kmp)
- Spring MVC静态资源处理<mvc:resources><mvc:default-servlet-handler>
- shell(二)Bash常用快捷键
- 结构体的学习
- 【BZOJ1068】[SCOI2007]压缩【区间DP】
- Activity中获取view的高度和宽度为0的原因以及解决方案
- linux服务器部署lamp
- C++对象指针
- Java Web中如何访问数据库
- HOJ 2634 How to earn more
- MySql主键不区分大小写问题、查询不区分大小写问题
- Lua:元表(metatable)与元方法(meatmethod)