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.com

        ave=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赋值为空

上一页  [1] [2] [3] [4]  下一页


Tag:EDA/PLDeda技术,eda技术实用教程EDA/PLD

《C语言中结构体与联合体的简单用法》相关文章

分类导航
最新更新
热门排行