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