C语言指针-----指针与结构体

本文对比了结构体和数组这两种复合数据类型的特性,指出结构体能够包含多种数据类型,而数组仅能包含相同类型的数据。并通过一个C语言的例子展示了如何定义和使用结构体。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

结构体和数组都是复合数据类型,不同之处在于,数组中 每个元素只能是相同的数据类型,而结构体可以说是包罗万象,里面的元素可以是不同的数据类型,且可以是任何数据类型包括基本数据类型和复合数据类型。
这里没有多少复杂的关系,要注意的是指针和结构体变量访问结构体里的与元素的方式不同。
下面给出一个例子:

#include<stdio.h>
#include<stdlib.h>
struct people{
    char *name;
    int age;
};
struct student{
    char *id;
    struct people man;  
};
int main(void){
    struct student student1; 
    struct student *student2;//结构体指针使用前别忘记分配内存
    student2=(struct student *)malloc(sizeof(struct student));
    //struct student *student2=&student1; 
    student1.id="20160101001";
    student1.man.name="lena";
    student1.man.age=24;
    printf("student1's name is %s\n",student1.man.name);
    printf("student1's name is %d\n",student1.man.age);
    printf("student1's name is %s\n\n",student1.id);

    (*student2).id="11111111";// student2->id="0000"//两种方式 
    printf("student2's name is %s\n",student2->man.name);
    printf("student2's name is %d\n",student2->man.age);// 
    printf("student2's name is %s\n",(*student2).id);

    free(student2);
    return 0;
}

结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值