structStudent//类型设计{
char s_id[10];char s_name[10];int s_age;}stud;//对象voidInitStudent(structStudent*stud)//初始化结构体 传入自己的地址{
printf("id name age \n");scanf_s("%s",stud->s_id);scanf_s("%s",stud->s_name);//数组名本身就表示地址scanf_s("%d",&stud->s_id);//整形 要传地址 否则形参不能改变实参}voidPrintStudent(conststructStudent*stud)//输出结构体内容 不希望改变参数值{
assert(stud!=NULL);printf("id name age \n");scanf_s("%s",stud->s_id);scanf_s("%s",stud->s_name);//数组名本身就表示地址scanf_s("%d",stud->s_id);//整形 要传地址 否则形参不能改变实参}intmain(){
structStudent x;//x被称为对象,操纵结构体变量,用(.)进行使用structStudent x ={
"09001","lili",18};//按照顺序初始化,和结构体顺序要保持一致structStudent*p =&x;printf("%s \n",(*p).s_id);//指针的属性输出printf("%s \n",p->s_id);structStudent y = x;//可以进行初始化structStudent z ={
};
z = x;//可以进行赋值printf("%s \n",x.s_id);//输出使用.运算符strcpy_s(x.s_id,10,"09001");//引入#in clude<string.h>,vs2019不用st