二、代码
#include <stdio.h>
// 如果变量 写到函数或者代码块外面, 那么就不是局部变量,而是全局变量
// 全局变量的作用域 是从定义的哪一行开始, 知道文件末尾 (暂时这样理解)
int num;
// 如果将 结构体类型 写在函数或者 代码块外面, 那么结构体类型的作用域 和全局变量一样 , 从定义的那一行开始 一直到文件末尾
// 相同作用域 不能有同名的结构体类型
struct Person
{
int age;
char *name;
double height;
};
int main()
{
int num = 10;
struct Person sp;
return 0;
}
void test2()
{
num = 20;
struct Person sp1;
}
void demo()
{
struct Person
{
int age;
char *name;
double height;
};
int num = 10;
{
struct Dog
{
int age;
char *name;
};
struct Dog sd;
// 在不同的作用域中 可以定义同名的结构体类型 , 如果使用同名的结构体类型 定义结构体变量, 采用就近原则
struct Person
{
// int age;
char *name;
double height;
};
// 在不同的作用域中 可以有同名局部变量, 如果访问采用就近原则
int num = 50;
printf("num = %i\n",num);
}
struct Person sp = {25,"lyh",1.71};
// num = 55;
// struct Dog sd1;
struct Person sp1;
}
void test()
{
// 1.如果结构体 定义在函数或者 代码块中, 那么
// struct Person sp;
}