首页 > 文章列表 > 在C语言中,局部作用域是指在特定代码块内部定义的变量、函数或其他实体的可见范围。局部作用域的实体只能在其所在的代码块内部访问和使用,超出该范围将无法访问

在C语言中,局部作用域是指在特定代码块内部定义的变量、函数或其他实体的可见范围。局部作用域的实体只能在其所在的代码块内部访问和使用,超出该范围将无法访问

288 2023-09-11

结构是不同数据类型变量的集合,以单个名称分组在一起。

结构声明的一般形式

结构声明如下如下 -

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

这里,struct 是关键字。

tagname 指定结构名称。

member1

strong>、member2 指定组成结构的数据项。

示例

以下示例显示了结构在局部范围内的用法。< /p>

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

示例

以下程序显示了本地范围内结构的用法。

 实时演示

#include<stdio.h>
struct{
   char name[20];
   int age;
   int salary;
   char add[30];
}emp1,emp2;
int manager(){
   struct{ //structure at local scope
   char name[20];
   int age;
   int salary;
   char add[50];
}manager ;
manager.age=27;
if(manager.age>30)
   manager.salary=650000;
else
   manager.salary=550000;
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:Bob
enter the add of emp1:Hyderabad
enter the salary of emp1:500000
enter the name of emp2:Hari
enter the add of emp2:Chennai
enter the salary of emp2:450000
emp1 salary is 500000
emp2 salary is 450000
manager salary is 550000