您的位置:首页 > 其它

Struct结构体的使用学习

2015-10-09 09:04 435 查看

Struct结构体的使用

结构体的声明

struct _Person
{
char *name;
int age;
double height;
};


struct _Person p1;

每次使用结构体的时候都要struct _Person ,比如struct _Person p1={0};sizeof(struct _Person ); 太麻烦。

2、typedef int zhengshu;可以给int取一个别名zhengshu。

因此也可以用typedef struct _Person Person;把Person定义为struct _Person 的别名

3、当然最常用的简化写法:

typedef struct _Person

{

int age;

char* name;

} Person;


4、结构体的赋值

Person p1={0};

p1.name = “全智贤”;

p1.age=30;

Person p2 = p1;

printf(“%d,%d\n”,&p1,&p2);

printf(“%s的年龄是%d\n”,p1.name,p1.age);

p1和p2的地址不一样,结构体赋值是“复制一份”

5、为了避免内存占用,一般只用一份,因此通过结构体指针传递:

Person *p2 = &p1;

printf(“%s的年龄是%d\n”,p2->name,p2->age);

6、注意:对于结构体指针,取成员要使用->,而不是“.”

#include <stdio.h>

typedef struct _Person
{
char *name;
int age;
} Person;

int main(int argc, char *argv[])
{
Person p1 ={0};
p1.name= "aaaa";
p1.age= 30;
printf("%s,%d\n",p1.name,p1.age);

Person p2 = p1;//创建一个Person结构体内存
//复制p1的内容
p1.age = 300;
printf("%s,%d\n",p2.name,p2.age);
printf("%d,%d\n",&p1,&p2);

Person* p3 = &p1;
printf("%d,%d\n",p3,&p1);
printf("%s,%d\n",p3->name,p3->age);//对于结构体指针
//取成员的值要使用->
p1.age= 100;
printf("%s,%d\n",p3->name,p3->age);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: