您的位置:首页 > 编程语言 > C语言/C++

C/C++结构体链表

2016-01-31 18:33 519 查看
这几天呢。在学习C语言,打算搞明白C的自定义头文件的,可是在运行头文件的时候却发生了错误,于是纠结于那个结构体,我搞了一天多的时间,总算把它搞明白了,下面上代码:

C++:

#include <stdio.h>

typedef struct TelPhone{
char Name[20];
char TelNumber[20];
}iTem;

struct list{
iTem item;
list* next;//直接使用结构体名称
};

typedef struct list List;

void main()
{
int i=0;
iTem *item = new iTem;

printf("你好,尊姓大名呢?\n");
scanf("%s",item->Name);
printf("%s\n",item->Name);
printf("留下联系方式如何,嘻嘻\n");
scanf("%s",item->TelNumber);
printf("%s\n",item->TelNumber);

List *list = new List;	//C++可以像其他面向对象语言一样随处声明变量
list->item = *item;
list->next = list;	//指向自己

printf("%s\n",(*list).item.Name);

for(;i<20;i++){
(*list).next->item.Name[i]=65+i;
}
(*list).next->item.Name[19]='\0';

printf("%s\n",(*list).next->item.Name);

}


C:

#include <stdio.h>
#include <stdlib.h>		//要有这个头文件才能用molloc()函数

typedef struct TelPhone{
char Name[20];
char TelNumber[20];
}iTem;

struct list{
iTem item;
struct list* next;//C的语法比较严格他需要加上struct关键字才能运行正常
//我看的例子就是这个地方坑我的
};

typedef struct list	* List;

void main()
{
int i=0;
iTem item ;
List list = (List)malloc(sizeof(List)) ;	//必须放在函数前声明,不然报错谁也帮你不了你了...

printf("你好,尊姓大名呢?\n");
scanf("%s",item.Name);
printf("%s\n",item.Name);
printf("留下联系方式如何,嘻嘻\n");
scanf("%s",item.TelNumber);
printf("%s\n",item.TelNumber);

list->item = item;
list->next = list ;		//指向自己

printf("%s\n",(*list).item.Name);

for(;i<20;i++)
{
list->next->item.Name[i]=65+i;

}
(*list).next->item.Name[19]='\0';

printf("%s\n",(*list).next->item.Name);

}


可以看到C跟C++的代码是差不多的,做个笔记,嘻嘻
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: