[C指针]指针与结构体:(Person person; )VS

2019-04-16  本文已影响0人  AkuRinbu

学习笔记

《深入理解C指针》
http://www.ituring.com.cn/book/1147
第6章 指针与结构体

一、声明结构体

声明C 结构体
/// 使用结构体的简单声明,要使用点表示法
    Person person;
    person.firstName = (char*)malloc(strlen("Emily")+1);
    strcpy(person.firstName,"Emily");
    person.age = 23;

    printf("age: %d\n", person.age);
    /// 使用结构体指针,要用箭头操作符
    Person *ptrPerson;
    ptrPerson = (Person*)malloc(sizeof(Person));
    ptrPerson->firstName = (char*)malloc(strlen("Emily")+1);
    strcpy(ptrPerson->firstName,"Emily");
    ptrPerson->age = 23;

    printf("age: %d\n", ptrPerson->age);

    Person *ptrPerson;
    ptrPerson = (Person*)malloc(sizeof(Person));
    (*ptrPerson).firstName = (char*)malloc(strlen("Emily")+1);
    strcpy((*ptrPerson).firstName,"Emily");
    (*ptrPerson).age = 23;

为结构体分配内存

二、释放结构体

1、使用简单结构体声明

Person person;
initializePerson(&person, "Peter", "Underwood", "Manager", 36);
...
deallocatePerson(&person);

使用简单结构体声明
图6-3:初始化的Person结构体

2、指向person实例的指针

Person *ptrPerson;
ptrPerson = (Person*) malloc(sizeof(Person));
initializePerson(ptrPerson, "Peter", "Underwood", "Manager", 36);
...
deallocatePerson(ptrPerson);
free(ptrPerson);

使用结构体指针
图6-4:指向person实例的指针
上一篇下一篇

猜你喜欢

热点阅读