导读
什么是结构?结构的作用。如何使用结构?
结构
作用
用一个整体来表达多个数据
struct date
{
int month
int day
int year
};
结构声明
声明的位置
在函数内部声明的结构只能在函数内部使用,不能在其他函数使用,故一般在函数外声明结构
声明的方式
struct point
{
int x;
int y;
};
struct point p1,p2
struct
{
int x;
int y;
}p1,p2;
struct point
{
int x;
int y;
}p1,p2;
结构变量
初始化
struct date today={07,31,2014}
struct date thismonth={.month=7,.year=2014}
结构用.运算符及其名字来访问其成员 注:.运算符的左边应为结构变量,而不是结构类型 要访问整个结构直接用结构变量的名字
结构运算
对于整个结构,可以做赋值,取地址,也可以给函数传地址
赋值
p1=(struct point){5,10};
p1=p2
地址
和数组不同,结构必须使用&运算符
struct date *pDate=&today
结构体与函数
结构作为参数
结构可以作为函数的参数 函数也可以返回一个数组 输入:不能用scanf一次性输入一个数组 如果用函数来进行输入,因函数中的那个结构不是函数外的那个结构,所以,函数不能直接输入,但是,函数可以将输入的结构作为返回值返回给函数外的结构(前面的类型为struct ……)
结构指针作为参数
指向结构的指针
用->表示指针所指的结构变量中的成员
struct date
{
int month;
int day;
int year;
}myday;
struct date *p=&myday
*p.month
p->month
结构体数组
与整型,字符型类似,结构体也有数组 在初始化时需要多个{},最外面一个是数组的,里面的每一个对应数组中每个结构
struct time testtimes[5]={{11,59,59},{12,0,0},{1,29,59},{23,59,59},{19,12,27}}
同理结构中也可以放结构
struct dateAndTime{
struct date sdate
struct time stime
}
嵌套 因为结构里可以放结构,所以在调用结构中的结构时需要两个.运算符 如果有指针,也可以使用->运算符与.运算符嵌套使用
|