#c语言学习10—结构体

结构体

**1. 结构体类型的声明
2. 结构体初始化
3. 结构体成员访问
4. 结构体传参

结构体声明

结构体是一些值的集合,这些值称为成员变量,结构体的每个成员都可以使不同类型的变量
结构体成员可以是标量,数组,指针,甚至是其他结构体

//结构体声明
//struct 结构体关键字
//stu 结构体标签
//struct stu 结构体类型
//描述一个学生:名字,年龄,电话,性别
struct stu
{
char name[20];
short age;
char tel[12];
char sex[5];
}s1,s2,s3; //是三个全局的结构体变量


typedef struct stu
{
char name[20];
short age;
char tel[12];
char sex[5];
}stu;
int main()
{
    struct stu stu1; //局部的结构体变量
    stu stu1;
    system("pause");
    return 0;
}

结构体初始化

struct a
{
int a;
char b;
char arr[20];
double c; 
};
struct b
{
  char ch[10];
  struct a A;//结构体嵌套声明
  char* pc;
};

int main()
{
    char arr[]="hello";
    struct b A={"www",{1,'w',"hello",5},arr};//结构体嵌套初始化
    
    system("pause");
    return 0;
}

结构体成员访问

结构体变量成员的访问是通过操作符 " ."来访问的例如

stu.name=“www”;

void Print1(stu temp)
{
  printf("name=&s\n",temp.name);
  printf("age=&d\n",temp.age);
  printf("tel=&s\n",temp.tel);
  printf("sex=&s\n",temp.sex);
}
void Print2()
{
  printf("%s",temp->name);
  printf("%d",temp->age);
  printf("%s",temp->tel);
  printf("%s",temp->sex);
}
int main()
{
    stu stu1={"李四",2,"123456789","男"};
    Print1(stu1);
    Print2(&stu1);
    system("pause");
    return 0;
}

若将结构体地址传到自定义函数里,要用操作符:->,其是针对结构体指针,来访问结构体变量
其中,传址的Print2函数更合适,因为无需重新开辟空间来存储结构体,并且,传参是需要压栈的,如果传递的结构体对象过大,压栈的开销也就响应大,会导致性能下降

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值