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

正文內(nèi)容

譚浩強c語言word版11(參考版)

2025-08-31 18:25本頁面
  

【正文】 有時也可用宏定義來代替 typedef 的功能,但是宏定義是由預處理完成的,而 typedef則是在編譯時完成的,后者更為靈活方便。 定義 STU表示 stu的結(jié)構(gòu)類型,然后可用 STU來說明結(jié)構(gòu)變量: STU body1,body2。 char sex。 完全等效于: char a1[20],a2[20],s1[20],s2[20] 又如: typedef struct stu { char name[20]。 表示 NAME 是字符數(shù)組類型,數(shù)組長度為 20。 用 typedef定義數(shù)組、指針、結(jié)構(gòu)等類型將帶來很大的方便,不僅使程序書寫簡單而且使意義更為 明確,因而增強了可讀性。 例如: INTEGER a,b。 其中 int是整型變量的類型說明符。類 型定義符 typedef即可用來完成此功能。 } } printf(\n)。 break。d39。 break。c39。 break。b39。 break。a39。i=30。 if (jd) j=a。i++){ month[i]=j。 for(i=1。 int i。 還應(yīng)該說明的是枚舉元素不是字符常量也不是字符串常量,使用時不要加單、雙引號。 如: a=(enum weekday)2。 是錯誤的。而: a=0。 b=mon。 } 說明: 只能把枚舉值賦予枚舉變量,不能把元素的數(shù)值直接 賦予枚舉變量。 c=tue。 a=sun。如在 weekday中, sun值為 0, mon值為 1, …,sat值為 6。 都是錯誤的。 mon=2。不能在程序中用賦值語句再對它賦值。 或者為: enum { sun,mou,tue,wed,thu,fri,sat }a,b,c。 enum weekday a,b,c。 2. 枚舉變量的說明 如同結(jié)構(gòu)和聯(lián)合一樣,枚舉變量也可用不同的方式說明,即先定義后說明,同時定義說明或直接說明。 例如: 該枚舉名為 weekday,枚舉值共有 7 個,即一周中的七天。 在枚舉值表中應(yīng)羅列出所有可用值。應(yīng)該說明的是,枚舉類型是一種基本數(shù)據(jù)類型,而不是一種構(gòu)造類型,因為它不能再分解為任何基本類型。為此,C語言提供了一種稱為“枚舉”的類型。例如,一個星期內(nèi)只有七天,一年只有十二個月,一個班每周有六門課程等等。 pb為后一結(jié)點的指針變量。在 creat函數(shù)內(nèi)定義了三個 stu結(jié)構(gòu)的指針變量。結(jié)構(gòu)stu定義為外部類型,程序中的各個函數(shù)均可使用該定義。 } 在函數(shù)外首先用宏定義對三個符號常量作了定義。 pf=pb。 else pfnext=pb。pbage)。 scanf(%d%d,amp。i++) { pb=(TYPE*) malloc(LEN)。 for(i=0。 TYPE *creat(int n) { struct stu *head,*pf,*pb。 struct stu *next。程序如下: define NULL 0 define TYPE struct stu define LEN sizeof (struct stu) struct stu { int num。為簡單起見, 我們假定學生數(shù)據(jù)結(jié)構(gòu)中只有學號和年齡兩項。 鏈表的基本操作對鏈表的主要操作有以下幾種: 1. 建立鏈表; 2. 結(jié)構(gòu)的查找與輸出; 3. 插入一個結(jié)點; 4. 刪除一個結(jié)點; 下面通過例題來說明這些操作。 struct stu *next。 例如,一個存放學生學號和成績的結(jié)點應(yīng)為以下結(jié)構(gòu): struct stu { int num。另一個域為指針域,存放下一結(jié)點的首地址。 圖中,第 0個結(jié)點稱為頭結(jié)點,它存放有第一個結(jié)點的首地址,它沒有數(shù)據(jù),只是一個指針變量。這樣一種連接方式,在數(shù)據(jù)結(jié)構(gòu)中稱為 “鏈表 ”。 可在第一個結(jié)點的指針域內(nèi)存入第二個結(jié)點的首地址,在第二個結(jié)點的指針域內(nèi)又存放第三個結(jié)點的首地址,如此串連下去直到最后一個結(jié)點。結(jié)點之間的聯(lián)系可以用指針實現(xiàn)。另一方面,用數(shù)組的方法必須占用一塊連續(xù)的內(nèi)存區(qū)域。有一個學生就分配一個結(jié)點,無須預先確定學生的準確人數(shù),某學生退學,可刪去該結(jié)點,并釋放該結(jié)點占 用的存儲空間。而且當學生留級、退學之后也不能把該元素占用的空間從數(shù)組中釋放出來。有多少個學生就應(yīng)該申請分配多少塊內(nèi)存空間,也就是說要建立多少個結(jié)點。 鏈表的概念 在例 。最后用 free函數(shù)釋放 ps指向的內(nèi)存空間。然后分配一塊 stu大內(nèi)存區(qū),并把首地址賦予 ps,使 ps指向該區(qū)域。 free(ps)。 printf(Number=%d\nName=%s\n,psnum,psname)。M39。 psname=Zhang ping。 ps=(struct stu*)malloc(sizeof(struct stu))。 float score。 char *name。 【例 】分配一塊區(qū)域,輸入一個學生數(shù)據(jù)。 功能:釋放 ptr 所指向的一塊內(nèi)存空間, ptr 是一個任意類型的指針變量,它指向被釋放區(qū)域的首地址。因此該語句的意思是:按 stu的長度分配 2塊連續(xù)區(qū)域,強制轉(zhuǎn)換為 stu類型,并把其首地址賦予指針變量 ps。 例如: ps=(struet stu*)calloc(2,sizeof(struct stu))。 (類型說明符 *)用于強制類型轉(zhuǎn)換。 調(diào)用形式: (類型說明符 *)calloc(n,size) 功能:在內(nèi)存動態(tài)存儲區(qū)中分配 n塊長度為 “size”字節(jié)的連續(xù)區(qū)域。 表示分配 100個字節(jié)的內(nèi)存空間,并強制轉(zhuǎn)換為字符數(shù)組類型,函數(shù)的返回值為指向該字符 數(shù)組的指針,把該指針賦予指針變量 pc。 “ size”是一個無符號數(shù)。 “類型說明符”表示把該區(qū)域用于何種數(shù)據(jù)類型。 常用的內(nèi)存管理函數(shù)有以下三個: 1. 分配內(nèi)存空間函數(shù) malloc 調(diào)用形式: (類型說明符 *)malloc(size) 功能:在內(nèi)存的動態(tài)存儲區(qū)中分配一塊長度為 size字節(jié)的連續(xù)區(qū)域。對于這種問題,用數(shù)組的辦法很難解決。 用變量表示長度,想對數(shù)組的大小作動態(tài)說明,這是錯誤的。n)。 例如: int n。 動態(tài)存儲分配 在數(shù)組 一章中,曾介紹過數(shù)組的長度是預先定義好的,在整個程序中固定不變。在函數(shù) ave中完成計算平均成績和統(tǒng)計不及格人數(shù)的工作并輸出結(jié)果。在 main 函數(shù)中定義說明了結(jié)構(gòu)指針變量 ps,并把 boy 的首地址賦予它,使 ps 指向 boy 數(shù)組。 } 本程序中定義了函數(shù) ave,其形參為結(jié)構(gòu)指針變量 ps。 ave=s/5。 if(psscore60) c+=1。i5。 float a
點擊復制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1