freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

級c語言程序設(shè)計第9章結(jié)構(gòu)體與共用體-在線瀏覽

2025-02-23 18:46本頁面
  

【正文】 ? 例 輸入如表 91所示的學(xué)生情況登記表,按學(xué)號順序整理輸出該表。 char name[20]。 int age。 } a[5]。 ? 結(jié)構(gòu)體指針變量也可以用來指向結(jié)構(gòu)體數(shù)組中的元素。 p=amp。 引用指針?biāo)赶虻慕Y(jié)構(gòu)體變量的成員 通過指針變量引用結(jié)構(gòu)體變量的成員有如下兩種方式: ( 1) (*結(jié)構(gòu)體指針 ).成員名 例如: (* p).num ( 2)結(jié)構(gòu)體指針 成員名 例如: p num 指向結(jié)構(gòu)體數(shù)組的指針 ? 對于已定義的結(jié)構(gòu)體數(shù)組,若用一個變量來存放該結(jié)構(gòu)體數(shù)組在內(nèi)存中的首地址,則該變量為指向結(jié)構(gòu)體數(shù)組的指針變量。 p=a。) 結(jié)構(gòu)體與函數(shù) 1. 結(jié)構(gòu)體變量作為函數(shù)的形參的三種形式 : ( 1) 以結(jié)構(gòu)體變量的成員作為參數(shù),傳遞結(jié)構(gòu)體變量的成員的值 。 在 ANSI C標(biāo)準(zhǔn)中允許用結(jié)構(gòu)變量作為函數(shù)的參數(shù)進(jìn)行整體傳送,即直接將實參結(jié)構(gòu)體變量的各個成員的值逐個傳遞給形參結(jié)構(gòu)體變量的對應(yīng)成員。 ( 3) 以結(jié)構(gòu)體指針作為參數(shù),傳遞結(jié)構(gòu)體變量的地址 。 因此最好的辦法就是使用指針,即用指針變量作函數(shù)參數(shù)進(jìn)行傳送。 例 利用函數(shù)完成結(jié)構(gòu)體變量的輸入輸出。 ( 1) 靜態(tài)分配方式 :先在程序的聲明部分進(jìn)行定義,然后在程序編譯時分配適當(dāng)?shù)拇鎯卧? ( 2) 動態(tài)分配方式 :在程序執(zhí)行期間,通過 “ 申請 ” 分配指定的存儲空間來存儲數(shù)據(jù),當(dāng)有閑置不用的存儲空間時,又可以隨時將其釋放。本章下面要介紹的是通過動態(tài)分配方式,在程序執(zhí)行期間,通過 “ 申請 ” 分配的動態(tài)的存儲單元,以及動態(tài)分配的存儲單元構(gòu)成的 “ 鏈表 ” 結(jié)構(gòu)。 … … 2022 2036 75 80 90 … … 2022 2058 2058 head 80 head NULL 75 90 可直觀地表示如下: 動態(tài)分配函數(shù) 1. malloc函數(shù) 函數(shù)格式: void *malloc(unsigned int size) 函數(shù)功能:在內(nèi)存的動態(tài)存儲區(qū)中分配一個長度為 size的存儲單元。 long *lp。 p=(int *)malloc(2)。 /*分配一個長整型存儲單元 ,用 lp指向該存儲單元 ,長整型存儲單元所占字節(jié)數(shù)由函數(shù) sizeof(long)求得 */ head=(struct student *)malloc(sizeof(struct student))。 函數(shù)功能:在內(nèi)存的動態(tài)存儲區(qū)域中分配 n個長度為 size的連續(xù)存儲單元。函數(shù)的返回值為分配的連續(xù)存儲單元的起始地址;如果分配不成功,則返回值為 0。 p=(int *)calloc(3,sizeof(int))。 函數(shù)功能:釋放由指針變量 ptr指向的內(nèi)存區(qū)域。通過函數(shù) free將已分配的內(nèi)存區(qū)域交還系統(tǒng),使系統(tǒng)可以重新對其進(jìn)行分配。 p=(int *)calloc(3,sizeof(int))。 鏈表的基本操作 1. 鏈表節(jié)點的定義 鏈表中的任一個節(jié)點都包括兩個數(shù)據(jù)項 , 一個是節(jié)點自身的數(shù)據(jù)信息 , 稱為節(jié)點的數(shù)據(jù)域 , 另一個是下一節(jié)點的地址值 , 稱為節(jié)點的指針域 。 struct node *next。 datatype是數(shù)據(jù)域的類型,可以是前面所介紹的任意 C語言類型。 ? 例 1:存儲三個同學(xué)的計算機(jī)成績的鏈表存儲方式如下: 80 head NULL 75 90 上述鏈表中節(jié)點的定義如下: struct node { int data。 }。 鏈表的基本操作 2.鏈表的基本操作 鏈表的基本操作主要有鏈表的建立、節(jié)點的訪問、節(jié)點的插入、節(jié)點的刪除等。 鏈表的建立是一個動態(tài)存儲空間分配和形成鏈接關(guān)系的過程。 2)請分配新節(jié)點存儲單元,對新節(jié)點的數(shù)據(jù)域和指針域賦值。 3)將新節(jié)點鏈接到鏈表的尾部: 4)重復(fù)步驟 2) ~3),繼續(xù)插入新節(jié)點直到結(jié)束。 struct node *next。 鏈表的頭指針定義如下: struct node *head。 程序段如下: struct node *creat() { struct node *head,*p,*q。 head=NULL。 scanf(%d,amp。 pnext=NULL。 if(n==1) head=p。 q=p。 scanf(%d,amp。 pnext=NULL。 } define NULL 0 define LEN sizeof(struct node) struct node { int data。 }。 80 head NULL 75 90 NULL q p ( 2)鏈表節(jié)點的訪問。 2)用一個指針 p指向鏈表的第一個節(jié)點,即 p=head。 4)移動指針 p,使它指向下一節(jié)點,即 p=pnext。 鏈表的基本操作 ? 例 輸出例 。 struct node *next。 void print(struct node *head) { struct node *p。 while(p!= NULL) { printf(%d,pdata)。 } } 80 head NULL 75 90 p p p ? ( 3)鏈表節(jié)點的插入。 ? 插入條件的要求主要有以下幾種情況: 1. 新節(jié)點插入在第 i個節(jié)點之前(或后)。 3. 新節(jié)點插入在一個節(jié)點數(shù)據(jù)有序的鏈表中,保證插入新節(jié)點后鏈表仍然有序。 ? 操作過程如下: ? 1) 取鏈表頭指針 head。 ? 3) 如果 head等于 NULL,即鏈表為空,不存在指定數(shù)據(jù)的節(jié)點,則新節(jié)點插入到鏈表中,成為鏈表中惟一的節(jié)點,即將新節(jié)點的地址賦給頭指針 head,賦新節(jié)點指針域的值為 NULL。 ? 5) 如果 p所指節(jié)點是指定節(jié)點,將新節(jié)點插入在 p所指節(jié)點之前 ,即 p的前一節(jié)點的指針域的值為新節(jié)點的地址,新節(jié)點的指針域的值為 p。 ? 7) 返回操作后鏈表的頭指針。 ? 其過程示意圖 : q 80 head 75 x y s p 新結(jié)點 指向所搜結(jié)點的前驅(qū)結(jié)點 指向要找的結(jié)點 ? 程序段如下: if(x= =pdata) { if(p= =head) { snext=head。 } else { snext=p。 } } else { snext=pnext。 } return(head)。 s= (struct node *)malloc(LEN)。 if (head= =NULL) { snext=head。 return(head)。 while(pdata!= xamp。pnext!=NULL) { q=p。 } ? ( 4)鏈表節(jié)點的刪除。 ? 下面介紹刪除節(jié)點數(shù)據(jù)等于某一指定數(shù)據(jù)的節(jié)點的操作過程。 2)如果 head等于 NULL,即鏈表為空,不存在指定數(shù)據(jù)的節(jié)點,刪除操作失敗,輸出相關(guān)信息。 4)如果 p所指節(jié)點是指定節(jié)點,刪除該節(jié)點,即 p所指節(jié)點指針域的值賦給其前一節(jié)點的指針域。 6)返回操作后鏈表的頭指針。 q 80 head x 80 p 指向要刪除結(jié)點 指向要刪除結(jié)點前驅(qū)結(jié)點 鏈表的基本操作 程序段如下: define NULL 0 define LEN sizeof(struct node) struct node { int data。 }。 if (head==NULL)
點擊復(fù)制文檔內(nèi)容
電大資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1