struct和typedef

struct
把一组变量组合成一个构造的一种方式
1、struct可以写在函数里,也可以单独写在外面,自成一体,C++的class对象的语法就是由struct演化而来的。
2、注意以分号结束。

struct Student{
    string name;
    int age;
    int number;
};

int main(){ 
    struct Student s;//如果不使用别名,s的数据类型就是struct Student
    s.name="张三";    
    return 0;
}

struct和typedef

typedef struct {
    string name;
    int age;
    int number;
}Student;

int main(){ 
    Student s;//使用别名,可以简化定义变量
    s.name="张三";    
    return 0;
}

带struct名的typedef别名结构体举例

typedef struct SelfReferential{
    int i;
    SelfReferential* sr;
}SelfReferential;

int main(){
    SelfReferential sr1,sr2;
    //sr1和s2互相指向且每个都有一块数据
    sr1.sr=&s2;
    sr2.sr=&s1;
    sr1.i=47;
    sr2.i=1024;
}

指针和struct、typedef

//struct的名字和typedef的名字可以不相同,但是还是相同的好
    typedef struct Structure{
        char c;
        int i;
        float f;
        double d;
    }Structure;

int main(){ 
    Structure s1,s2;
    Structure* sp=&s1;
    sp->c='a';//用'->选择s1的成员并初始化他们'
    sp->i=1;
    sp->f=3.14;
    sp->d=0.0000093;

    //指针的一个好处就是可以动态重定向它的指向,使编程更灵活
    //java中的动态绑定底层其实还是指针
    sp=&s2;
    sp->c='a';
    sp->i=1;
    sp->f=3.14;
    sp->d=0.0000093;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值