#include
struct contact {
char phone[20];
char email[20];
};
struct person_plus {
char name[20];
char gender[20];
double height;
double weight;
};
void change(struct person_plus* per)
{
strcpy((*per).name, "David");
//per->name = "David";
strcpy((*per).gender, "man");
//per->gender = "man";
(*per).height = 176;
(*per).weight = 118;
//(*per).a.email = "None";
}
int main()
{
struct person_plus {
char name[20];
char gender[20];
double height;
double weight;
};
struct person_plus Uimmy = { "Uimmy","man",170,100};
change(&Uimmy);
}

{
strcpy((*per).name, "David");
// per->name = "David";
strcpy((*per).gender, "man");
// per->gender = "man";
(*per).height = 176;
(*per).weight = 118;
// (*per).a.email = "None";
}
int main()
{
#if 0
这里的结构体不用定义了,因为change函数访问不到局部变量
它只能访问前面定义的那个全局结构体变量
而你在这里定义的Uimmy变量只是局部变量,跑出去别的函数都不认识了。
struct person_plus
{
char name[20];
char gender[20];
double height;
double weight;
};
#endif
struct person_plus Uimmy = { "Uimmy", "man", 170, 100 };
change(&Uimmy);
printf("%s,%s,%.0lf,%.0lf\n",Uimmy.name,Uimmy.gender,Uimmy.height,Uimmy.weight);
puts("ok");
return 0;
}
供参考:
#include<stdio.h>
#include<string.h>
struct contact {
char phone[20];
char email[20];
};
struct person_plus {
char name[20];
char gender[20];
double height;
double weight;
};
void change(struct person_plus* per)
{
strcpy((*per).name, "David");
//per->name = "David";
strcpy((*per).gender, "man");
//per->gender = "man";
(*per).height = 176;
(*per).weight = 118;
//(*per).a.email = "None";
}
int main()
{
//struct person_plus { //结构体已经定义了,这里再定义,重复了。
// char name[20]; //修改
// char gender[20];
// double height;
// double weight;
//};
struct person_plus Uimmy = { "Uimmy","man",170,100};
change(&Uimmy);
printf("%s %s %f %f\n",Uimmy.name,Uimmy.gender,Uimmy.height,Uimmy.weight);
return 0;
}
#include<stdio.h>
#include<string.h>
struct contact {
char phone[20];
char email[20];
};
struct person_plus {
char name[20];
char gender[20];
double height;
double weight;
};
void change(struct person_plus* per)
{
strcpy((*per).name, "David");
//per->name = "David";
strcpy((*per).gender, "man");
//per->gender = "man";
(*per).height = 176;
(*per).weight = 118;
//(*per).a.email = "None";
}
int main()
{
//struct person_plus { //结构体已经定义了,这里再定义,重复了。
// char name[20]; //修改
// char gender[20];
// double height;
// double weight;
//};
struct person_plus Uimmy = { "Uimmy","man",170,100};
change(&Uimmy);
printf("%s %s %f %f\n",Uimmy.name,Uimmy.gender,Uimmy.height,Uimmy.weight);
return 0;
}