#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;
}