C语言中结构体与联合体的简单用法
[09-12 18:27:12] 来源:http://www.88dzw.com EDA/PLD 阅读:8505次
文章摘要: ave=s/5; //ave计算学生的平均成绩 printf("average=%.3f\ncount=%d\n",ave,c);}int main(){struct stu *ps; //定义结构体变量*ps 目的是在内存空间中取一个连续的栈空间,大小是sizeof( struct stu),并将内存的首地址赋值给psps=pupil; //将pupil的地址赋值给ps 将ps的指向定位到具体的结构体数据头处,即给*ps赋值操作,将数
C语言中结构体与联合体的简单用法,标签:eda技术,eda技术实用教程,http://www.88dzw.comave=s/5; //ave计算学生的平均成绩
printf("average=%.3f\ncount=%d\n",ave,c);
}
int main()
{
struct stu *ps; //定义结构体变量*ps 目的是在内存空间中取一个连续的栈空间,大小是sizeof( struct stu),并将内存的首地址赋值给ps
ps=pupil; //将pupil的地址赋值给ps 将ps的指向定位到具体的结构体数据头处,即给*ps赋值操作,将数据连续写入内存的栈空间中
avg(ps); //将ps赋值,调用函数avg
return 0; //返回mian函数开始执行处
}
结构体指针变量做函数参数的好处:直接减少压栈次数,效率比多次压栈效率高,调用方便。
链表与数组相比:
①链表的数据空间可以任意分配,而数组是一段连续的地址空间
②链表相比数组占用空间大
③链表方便对数据的搜索,删除和插入等
单向链表的创建:
每个节点包含了数据和一个指向下一个节点头的地址
data
pNext
data
pNext
data
pNext
data
NULL
head
例:函数实现:输入一个变量n就能够创建n个节点
struct stu
{
int age;
int num;
struct stu *next;
};
struct stu *creat(int num) //假设将要创建的个数,返回一个结构指针
{
struct stu *head,*pf,*pb;
int n;
for(n=1;n<=num;n++)
{
printf(“please input the %d student’s age and num info:\n”n);
pb=(struct stu *)malloc(sizeof(struct stu));//在内存中申请一个大小为 struct stu块空间,并将pb指向这个内存,每次都在指向的内存中的头字节
scanf(“%d %d”,&pb->age,&pb->num); //给内存中输入第n个学生的信息
if(i==1)
head=pb; //第一个学生时,将块空间头指针赋值给head指针, head指向第一个节点,为了返回而不会发生变化
else
pf->next=pb; //其他学生时,将pb赋值给前个空间内的节点指针空间,pf表示的是上一个节点的头指针
pb->next=NULL; //将申请的内存块内的指针变量next赋值为空
- 上一篇:C语言结构体定义
《C语言中结构体与联合体的简单用法》相关文章
- › 不定参数在C语言中的应用实例
- › 在C语言中如何存储并初始化成员变量
- › C语言中结构体与联合体的简单用法
- 在百度中搜索相关文章:C语言中结构体与联合体的简单用法
- 在谷歌中搜索相关文章:C语言中结构体与联合体的简单用法
- 在soso中搜索相关文章:C语言中结构体与联合体的简单用法
- 在搜狗中搜索相关文章:C语言中结构体与联合体的简单用法