使用 C 语言编写局部作用域程序中的结构体


结构体是由不同数据类型变量的集合,这些变量组合在一起并使用一个名称来标识。

结构体的特性

下面解释了结构体的特性:

  • 可以使用赋值运算符将不同数据类型的所有结构体元素的内容复制到另一个相同类型的结构体变量中。

  • 对于处理复杂数据类型,最好在一个结构体中创建另一个结构体,这被称为嵌套结构体。

  • 可以将整个结构体、结构体的单个元素以及结构体的地址传递给函数。

  • 还可以创建结构体指针。

结构体的声明

结构体声明的通用形式如下所示:

datatype member1;
struct tagname{
   datatype member2;
   datatype member n;
};

这里,**struct** 是关键字。

   **tagname** 指定结构体的名称。

   **member1, member2** 是数据项。

例如:

struct book{
   int pages;
   char author [30];
   float price;
};

示例

以下是局部作用域结构体的 C 程序:

 在线演示

#include<stdio.h>
struct{
   char name[20];
   int age;
   int salary;
   char add[30];
}emp1,emp2;
int manager(){
   struct{
      char name[20];
      int age;
      int salary;
      char add[50];
   }manager ;
manager.age=27;
if(manager.age>30)
   manager.salary=65000;
else
   manager.salary=55000;
   return manager.salary;
}
int main(){
   printf("enter the name of emp1:");
   //gets(emp1.name);
   scanf("%s",emp1.name);
   printf("
enter the add of emp1:");    scanf("%s",emp1.add);    printf("
enter the salary of emp1:");    scanf("%d",&emp1.salary);    printf("
enter the name of emp2:");    // gets(emp2.name);    scanf("%s",emp2.name);    printf("
enter the add of emp2:");    scanf("%s",emp2.add);    printf("
enter the salary of emp2:");    scanf("%d",&emp2.salary);    printf("
emp1 salary is %d",emp1.salary);    printf("
emp2 salary is %d",emp2.salary);    printf("
manager salary is %d",manager());    return 0; }

输出

执行上述程序时,会产生以下结果:

enter the name of emp1:hari
enter the add of emp1:hyderabad
enter the salary of emp1:4000
enter the name of emp2:lucky
enter the add of emp2:chennai
enter the salary of emp2:5000
emp1 salary is 4000
emp2 salary is 5000
manager salary is 55000

更新于: 2021年3月9日

354 次浏览

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.