结构体的基本使用

结构由数目固定的成员(又称域、项目或元素)构成,各成员可以具有不同的数据类型,包括基本类型和非基本类型。一个结构变量在内存占有片连续的存储空间, 但是, 因为各数据成员的类型不相同,所以具有特定的定义和访问形式。
  
结构体和其他类型基础数据类型一样,例如int类型、char类型,只不过结构体可以做成你想要的数据类型。以方便日后的使用。
结构体在函数中的作用不是简便,其最主要的作用就是封装。封装的好处就是可以再次利用。让使用者不必关心这个是什么,只要根据定义使用就可以了。

定义结构

结构类型是用户自定义数据类型,以关键字struct标识。
定义结构类型的说明语句形式为:
struct 标识符
{ 类型 成员 1;
类型 成员 2;

类型 成员 n;
};

可以用不同方法定义一个结构变量
(1)声明类型后声明变量

struct employee
{ char name [ 10 ] ;
long code ;
double salary ;
char address [ 50 ] ;
char phone [ 20 ] ;
} ;employee worker1, worker2, *Emp ;
(2) 声明类型的同时声明变量
struct employee
{ char name [ 10 ] ;
long code ;
double salary ;
char address [ 50 ] ;
char phone [ 20 ] ;
} ;worker1, worker2, *Emp ;
(3) 直接声明结构类型变量
struct
{ char name [ 10 ] ;
long code ;
double salary ;
char address [ 50 ] ;
char phone [ 20 ] ;
} ;worker1, worker2, *Emp ;

访问结构

(1)访问结构变量的成员:结构变量 . 成员

# include <iostream>
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 <iostream>
using namespace std ;
# include <cstring>
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 ;
   }

例:
N只小白鼠(1 < N < 100),每只鼠头上戴着一顶有颜色的帽子。现在称出每只白鼠的重量,要求按照白鼠重量从大到小的顺序输出它们头上帽子的颜色。帽子的颜色用“red”,“blue”等字符串来表示。不同的小白鼠可以戴相同颜色的帽子。白鼠的重量用整数表示。
输入第一行为一个整数N,表示小白鼠的数目。 下面有N行,每行是一只白鼠的信息。第一个为不大于1000的正整数,表示白鼠的重量,;第二个为字符串,表示白鼠的帽子颜色,字符串长度不超过10个字符。 注意:白鼠的重量各不相同。
输出
按照白鼠的重量从大到小的顺序输出白鼠的帽子颜色。

#include <iostream>
using namespace std;
struct white_mouse{
 char color[11];
 int weight;
};
int main(){
 struct white_mouse *mouse,temp;
 int N,i,j;
 cin>>N;
 mouse=new struct white_mouse[sizeof(struct white_mouse)*N];
for(i=0;i<N;i++)
   cin>>mouse[i].weight>>mouse[i].color;
 for(i=1;i<N;i++)
  for(j=0;j<=N-i-1;j++)
   if(mouse[j].weight<mouse[j+1].weight){
    temp=mouse[j];
    mouse[j]=mouse[j+1];
    mouse[j+1]=temp;
   }
 for(i=0;i<N;i++)
  cout<<mouse[i].color<<endl;;
 delete []mouse;
 return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
结构体是一种自定义的数据类型,用于存储不同类型的数据项。它允许我们将多个相关的数据项组合在一起,形成一个逻辑上的实体。 在C语言中,我们可以使用关键字`struct`来定义结构体,并在结构体内部定义数据项的类型和名称。下面是一个简单的例子: ```c struct Person { char name[50]; int age; float height; }; ``` 上面的代码定义了一个名为`Person`的结构体,它包含了三个数据项:`name`、`age`和`height`,分别表示人的姓名、年龄和身高。 我们可以使用结构体来创建具体的实例,并对其进行操作。例如,可以通过以下方式声明一个名为`person1`的结构体变量,并给其赋值: ```c struct Person person1; strcpy(person1.name, "John"); person1.age = 25; person1.height = 1.75; ``` 上述代码中,我们使用了`strcpy`函数将字符串“John”复制到`person1.name`中,然后分别赋值给了`person1.age`和`person1.height`。 我们还可以通过点运算符来访问结构体中的数据项。例如,可以使用以下方式输出`person1`的信息: ```c printf("Name: %s\n", person1.name); printf("Age: %d\n", person1.age); printf("Height: %.2f\n", person1.height); ``` 通过点运算符,我们可以访问结构体中的各个数据项,并在程序中进行相应的操作。 需要注意的是,结构体的成员变量默认是`public`的,即可以直接通过结构体变量访问。如果需要限制访问权限,可以使用C语言中的其他方式,如在结构体定义中使用关键字`private`或者通过函数来操作结构体。 这就是结构体基本使用方法,希望对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值