C结构体相关知识

1.定义一个结构体类型:

struct stu{

        成员变量

}s1,s2,s3(变量列表);      //struct为结构体关键字 stu为结构体标签 struct stu为结构体类型

//直接创建三个变量,s1,s2,s3为三个全局变量,均为结构体类型

2.Int main()

{

        Struct stu s//这个s为局部变量;

        Return 0;

}

创建结构体变量 struct stu s;

3.Typedef struct stu{

        成员变量

}Stu(类型);  //给结构体变量取了一个名字叫Stu,其实就相当于struct stu

4.结构体初始化用{}

struct stu s={“zhangsan”,20};

5.%s,%p都可以,前者打印指针指向的字符串,后者打印地址

struct S {

    int a;

    char c;

    char arr[20];

    double d;

};

struct T {

    char ch[20];

    struct S s;

    char* pc;

};

int main() {

    char ch[]="hello bit!";

    struct T t = { "hehe",{100,'w',"hello world!",3.14},ch };

    printf("%s\n", t.ch);

    printf("%c\n", t.s.c);

    printf("%s\n", t.s.arr);

    printf("%p\n", t.pc);

    printf("%s\n", t.pc);

}

运行结果如下:

6.函数传参的时候首选传址而不是传值,因为函数传参的时候,参数是需要压栈的,如果传递一个结构体对象的时候,结构体过大,参数压栈的系统开销比较大,所以会导致性能的下降。

所以结构体传参的时候要传结构体的地址

函数两个参数传参,从右往左传,先传b,再传a

     

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值