C语言基础之结构体

来源:互联网 发布:sql找不到存储过程 编辑:程序博客网 时间:2024/06/05 20:19

1、在C语言中可以使用结构体定义用户自己的数据类型,类似于数组,但是结构体中的成员可以是不同的数据类型。
struct结构体类型名 变量名
eg:
struct Student
{
char name[128];
int age;
float score;
};
//定义了一个名为Student的数据类型,该类型是一个结构,包括name、age、score三个成员
struct Student student;//定义了一个名为student的变量,该变量是struct Student 类型的
struct Student student2;
struct Student student3;
先用typedef定义结构体类型别名,再用该别名定义变量
typedef 原始类型 类型别名;
typedef unsigned int UINT;
UINT a;//等价于unsigned int a;
typedef int BOOL;
typedef struct Student
{
char name[128];
int age;
float score;
}STU;
STU student;
STU student2;
STU student3;
嵌套结构:一个结构体类型中的某个成员也是结构体类型的。
eg:
struct Student
{
char name[128];
int age;
float score;
struct Date{
int year;
int month;
int day;
}birthday;
};
2、结构型变量及数组的初始化
通过{}对结构性变量进行初始化。
3、访问结构体成员
(1)通过变量访问成员:用.运算符,亦称为成员访问运算符。
(2)通过指针访问成员:用->运算符,亦称间接访问成员运算符。
4、结构类型的变量可以作为函数的参数,但是与基本类型的参数的情况一样,虚实结合的过程只是值得赋值,因此在函数内部对形参所做的修改,不会影响实参。如果希望函数能够改变实参的值,应该传入变量的地址。
5、即使以读的方式访问形参的函数,仅仅出于性能的考虑,也可以以地址方式传参,避免结构复制所带来的开销。为了防止在函数中意外地修改实参,可以用常量指针定义参数。

原创粉丝点击