十天学会C语言

第09天C语言(14):结构体-类型作用域

2017-07-12  本文已影响17人  liyuhong
二、代码
#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;
}
上一篇下一篇

猜你喜欢

热点阅读