关于struct结构体学习

1.定义结构

结构类型定义形式为:
struct 标识符
{ 类型 成员1 ;
类型 成员2 ;

类型 成员n ;
} ; //注意大括号外的分号
例:
struct employee // elmploee是标识符;
{ char name [ 10 ] ;
long code ;
double salary ;
char address [ 50 ] ;
char phone [ 20 ] ;
} ;
2.可以用不同方法定义一个结构变量
(1)声明类型之后声明变量;
例:
employee worker;// worker是employee类型。
(2)声明类型的同时声明变量;
例:
struct employee
{ char name [ 10 ] ;
long code ;
double salary ;
char address [ 50 ] ;
char phone [ 20 ] ;
} worker;// worker是employee类型。
(3)直接声明结构类型变量
例:
struct //此时没有了结构类型标识符
{ char name [ 10 ] ;
long code ;
double salary ;
char address [ 50 ] ;
char phone [ 20 ] ;
}worker ;
(4)结构类型变量的初始化
例:
struct employee
{ char name [ 10 ] ;
long code ;
double salary ;
char address [ 50 ] ;
char phone [ 20 ] ;
}worker ={"Wang Li " , 991083456, 1200.5, "guang zhou " , " 87111111 " } ;

2.访问结构

(1)访问结构变量的成员
例:
#include
using namespace std ;
struct weather // 声明结构类型
{ double temp;
double wind;
} ;
int main ( )
{ weather today ; // 声明结构类型变量
today . temp = 10.5 ; // 对结构变量成员赋值
today . wind = 3.1 ;
cout << “Temp = ” << today . temp << endl ; // 按成员输出
cout << “Wind = ” << today . wind << endl ;
}
(2)用指针访问结构变量的成员
注意:结构指针 -> 成员 或 (*结构指针).成员。
例:
#include
#include
using namespace std ;
struct person
{ char name[20] ;
unsigned long id;
double salary;
} ;
int main ( )
{ person pr1 ;
person * pp ; // 定义结构指针
pp = & pr1 ; // 取结构变量地址
strcpy ( pp -> name , “David Marat” ) ; // 对结构成员赋值
pp -> id = 987654321 ;
pp -> salary = 335.0 ;
cout << pp -> name << ‘\t’ << pp -> id << ‘\t’ << pp -> salary << endl ;
}
(3)类型相同的结构变量可以整体赋值
例:
#include
using namespace std ;
struct weather
{ double temp; double wind; } yesterday ;
int main ( )
{ weather today ;
yesterday . temp = 10.5 ;
yesterday . wind = 3.1 ;
today = yesterday ; // 结构变量整体赋值
cout << “Temp = ” << today . temp << endl ;
cout << “Wind = ” << today . wind << endl ;
}

注意:“类型相同的变量” 是指用同一类型标识符说明的变量
例:
struct weather1
{ double temp; double wind; } yesterday ;
struct weather2
{ double temp; double wind; } today ;
// yesterday 和 today
尽管成员相同,但不是同类型变量
不可以整体赋值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值