关于定义结构体类型的步骤以及应注意的细节

#include <stdio.h>

#include <string.h>

//关于定义结构体类型的步骤以及应注意的细节

//定义结构体变量类型

//结构体只定义不初始化,系统是不分配空间的

struct teacher {

    char name[20];

    char age;

    long salary;

};//记得写分号; typedef 也要写分号; #define不用写

//打印结构体的函数 可以用结构体变量当形参传参数

void print(struct teacher s){

    printf("老师%s的年龄为%d 工资为%ld\n",s.name,s.age,s.salary);

} //%s 显示字符串

//struct teacher s = tch1;  

//struct teacher s; s = tch1;

int main(int argc, const char *argv[])

{

    /*your code*/

    //定义结构体变量tch1 并初始化赋值

    struct teacher tch1 = {"zhangsan",22,100000};

    print(tch1);

    struct teacher tch2 = {//多用于底层

        .name = "lisi",//?疑问.name是声明类型的一个字符串的首地址,所以可以这样赋值

        .age = 33,//可以只部分初始化,顺序也无要求

        .salary = 120000

    };

    print(tch2);

    struct teacher tch3;

    //结构体是char name[32]所以stu3.name是数组类型

    strcpy(tch3.name,"wangwu");//字符串赋值不能用=等号要用strcpy

    //tch3.name是一个字符串的数组名,当数组首地址用所以可以这样strcpy赋值

    //字符串数组名是一个常量 所以不能等号tch3.name="wangwu"赋值

    //而上面的.name是一个指针类型

    tch3.age = 29;

    tch3.salary = 150000;

    print(tch3);

    return 0;

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值