vc++指针结构体应用的几个问题

来源:百度知道 编辑:UC知道 时间:2024/06/07 05:08:37
#include<iostream.h>
#include<string.h>
struct PERSON
{
int age;
char sex;
float weight;
char name[25];
};
void main()
{
strust PERSON one;
strust PERSON *p;
p=&one;
p->age=32;
p->sex=‘M'
p->weight=(float)80.2;
strcpy(p->name,"LiMing");
cout<<“姓名:”<<(*p).name<<endl;
cout<<“性别:”<<(*p).sex<<endl;
cout<<“年龄:”<<(*p).age<<endl;
cout<<“体重:”<<(*p).weight<<endl;


结果
姓名:LiMing
性别:M
年龄:32
体重:80.2

我想问下一开始p=&one,p指针不是指向one变量
然后又分别指向了one里面的4个成员变量,指针不是指向一个内存地址的麻,现在为什么指向了5个(虽然4个成员变量是one里面的)?那么one和4个成员变量的内存地址到底是怎么分配的?

还有就是one和4个成员变量在程序里到底是怎么一个关系?

还有一个就是为什么后面要用strcpy(p->name,"LiMing");不和前面一样?

对这个脑子里一直很糊涂.....希望大家能解疑。。。谢谢!

这地方p是指向结构体one的指针,用->就可以访问one的成员变量,这是规定的用法。

第2个问题LZ该去补习下结构体的知识

strcpy(p->name,"LiMing");给字符串变量赋值,不能用p->name="LiMing"。