C语言-结构体

本文详细介绍了C语言中结构体的基础概念,包括结构体的定义、结构体变量的创建、赋值方法(初始化和点等法),以及如何通过.运算符访问结构体成员。还讨论了typedef的作用,用于简化数据类型名称。
摘要由CSDN通过智能技术生成

1. 基础

定义:用户自定义的数据类型,在结构体中可以包含若干不同数据类型(也可以相同)的成员变量,使这些数据项组合起来反映某一个信息。

格式:

struct 结构体名

{

数据类型 成员变量1;

数据类型 成员变量2;

数据类型 成员变量3;

};

2. 结构体变量

(1)概念:通过结构体类型定义的变量

(2)格式:struct 结构体名 变量名;

① 先定义结构体类型,在定义结构体变量

struct  结构体名
{
      数据类型   成员变量1;
      数据类型   成员变量2;
      数据类型   成员变量3;
};
struct  结构体名   变量名;

② 定义结构体的同时,定义结构体变量

struct  结构体名
{
      数据类型   成员变量1;
      数据类型   成员变量2;
      数据类型   成员变量3;
}变量名;

③ 缺省结构体名定义结构体变量

struct  
{
        成员变量1;
        成员变量2;
        成员变量3;
}变量名;

 

 3. 赋值

(1)定义变量时,直接用大括号赋值

#include <stdio.h>
struct test
{
    int id;
    int age;
    char name[32];
};
int main(int argc, char const *argv[])
{
    struct test s = {
        1,
        18,
    };
    return 0;
}

(2)定义变量时未初始化,然后对变量单独赋值

#include <stdio.h>
#include <string.h>
struct test
{
    int id;
    int age;
    char name[32];
};
int main(int argc, char const *argv[])
{
    struct test s;
    s.id = 1;
    s.age = 18;
    strcpy(s.name, "zhangsan");
    return 0;
}

(3) 点等法赋值

#include <stdio.h>
#include <string.h>
struct test
{
    int id;
    int age;
    char name[32];
};
int main(int argc, char const *argv[])
{
    struct test s = {
        .id = 1;
        .age = 18;
    }; 
    return 0;
}

 

4. 访问 

通过 . 访问:结构体变量名.成员变量名

#include <stdio.h>
#include <string.h>
struct test
{
    int id;
    int age;
    char name[32];
};
int main(int argc, char const *argv[])
{
    struct test s;
    scanf("%d %d %s", &s.id, &s.age, s.name);
    printf("%d %d %s\n", s.id, s.age, s.name);    
    return 0;
}

 

5. 重定义typedef

typedef int size_t;

typedef int* int_p;

int a;====size_t a;

结构体的数据类型名字太长,重新取个别名;

typedef struct ikun

{

}KK;

1.定义的同时重定义

 

 

2. 先定义,再重定义

  • 11
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值