C语言学习笔记6

今天简单梳理一下结构体、共用体和指针

结构体(Struct)

结构体是一种用户定义的数据类型,它允许您组合不同类型的多个变量作为单一单元。这使得您可以创建更复杂的类型,比如一个“学生”结构体可以包含学生的姓名、年龄和成绩等信息。

定义结构体:

struct Student {
    char name[50];
    int age;
    float score;
};

使用结构体:

struct Student student1 = {"John Doe", 20, 85.5};
printf("Name: %s, Age: %d, Score: %.1f\n", student1.name, student1.age, student1.score);

共用体(Union)

共用体也是一种用户定义的数据类型,但它与结构体的不同之处在于,共用体中的所有成员共享同一段内存位置。这意味着,您一次只能存储一个成员的值,而且一旦存储了一个新成员的值,之前成员的值就会被覆盖。

定义共用体:

union Data {
    int i;
    float f;
    double d;
};

使用共用体:

union Data data;
data.i = 10;
printf("Integer value: %d\n", data.i);

data.d = 3.14;
printf("Double value: %lf\n", data.d);

指针(Pointer)

指针是一个变量,其值为另一个变量的内存地址,即该变量的位置。指针对于动态内存分配、函数参数传递以及数组操作等非常重要。

定义指针:

int *p;  // 定义一个指向整型的指针

使用指针:

int x = 10;
p = &x;  // p现在指向x的地址
printf("Value of x through pointer: %d\n", *p);  // 输出x的值

结构体和共用体的指针

当您需要通过指针来访问结构体或共用体的成员时,可以定义指向这些复合类型的指针。

结构体指针示例:

struct Student *pStudent;
pStudent = &student1;
printf("Name: %s\n", (*pStudent).name);  // 或者使用箭头操作符 pStudent->name

共用体指针示例:

union Data *pData;
pData = &data;
pData->i = 20;
printf("New Integer value: %d\n", pData->i);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值