1.结构体:封装不同类型的数据
#include <iostream> using namespace std; struct data { int year=1; int month=2; int day=3; }; struct student//结构体数组 student[] { int num; char name[10]; data birthday; }; int main() { student curry={10,"zhangsan"}; student *p=&curry; p=new student; cout<<curry.name<<curry.birthday.year<<(*p).num<<endl<<p->num;//为什么是随机值 return 0; }
2.结构体作为数组的参数:引用传递可以节省时间和空间,为了使对形参的修改不改变实参的值,使用const的引用传递(void f(const student &p)
3。链表:可以动态的分配内存(创建一个单链表,插入一个节点,删除一个节点,访问某一个节点)
struct linknode { int data; linknode *next; };
tmp=new linknode;//创建一个新节点 tmp->data=x; //把x放入新节点的数据成员中 tmp->next=p->next// 把新节点和p的下一个节点连起来 p->next=tmp; //把p和新节点连起来 p->next=p->next->next;//删除节点,但会发生内存泄漏 delptr=p->next; //保存被删点的地址 p->next=delptr->next;//将此节点从连表中删除 delete delptr; //回收被删点的空间