C语言结构体

 

结构体的声明:

struct 结构名
{
类型 变量名;
类型 变量名;
...
} ;

结构体的定义:

1. struct  结构体名   结构变量名        // 这种结构体定义用于同一结构体不同对象的情况。

struct  name  xiaoming;
struct  name  xiaohong;

2.

// 多用于函数形参声明,或只有一个结构体变量
struct 结构名
{
类型 变量名;
类型 变量名;
...
} 结构变量;

3. 匿名结构体定义:

// 匿名结构体(没有结构名),它只能使用一次,用过一次就不能再用了
struct 
{
类型 变量名;
类型 变量名;
...
} 结构变量;
复制代码
// 结构体重命名, node ==  struct tag
typedef struct tag{
  int num; 
  char name;
  }node;

int main()
{
  struct tag n1;
        node n2;
 return 0;
}
//
typedef struct {
  int num; 
  char name;
  }node;

node n2;
复制代码

 

结构体初始化:

复制代码
// 定义时初始化
struct student{     
char name[20];      
char sex;  
int num;         
}x={"zhangsan",'m',1234};

/************************/ 

struct student{     
char name[20];  
char sex;      
int num;         
};
struct student s={"zhangsan",'m'}
复制代码
// 定义后初始化
struct student{     
char name[20];  
char sex;      
int num;    
}stu;
int main()
{
stu.name="zhangsan";
stu.sex='m';
stu.num=1234;return 0;
}

/*************************/ 
struct student *stu1;
stu->name="zhangsan";
stu->sex='m';
stu->num=1234;
复制代码

 

结构体自引用:

复制代码
/******** error ******/
struct tag_1{
  struct tag_1 A; 
  int value;
  };

/******** success******/
struct tag_1{
  struct tag_1 * A; 
  int value;
  };
复制代码

 

extern 引用结构体:

复制代码
typedef struct {
  int num; 
  char name;
  }node;

node n1;    // 定义n1结构体变量

extern   node n1// 引用n1

/****************/
struct node {
  int num; 
  char name;
  }node;
struct node n1;    // 定义n1结构体变量

extern struct  node n1    // 引用n1    
复制代码

 

复制代码

 

posted @   嵌入式小白—  阅读(108)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示