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

正文內(nèi)容

c語言用戶自定義數(shù)據(jù)類型-在線瀏覽

2025-07-14 21:21本頁面
  

【正文】 s1是 結(jié)構(gòu)變量 ,用來存放單個(gè)學(xué)生的信息 s2是 結(jié)構(gòu)數(shù)組 ,該數(shù)組包含 100個(gè)類型是 struct Student 的成員,這樣的數(shù)組可以表示一個(gè)學(xué)生情況 s3是 結(jié)構(gòu)指針 ,存放 struct Student 類型 數(shù)據(jù)對象 s1的內(nèi)存首地址 。 結(jié)構(gòu)成員的引用 19 2. 成員運(yùn)算符 兩種成員運(yùn)算符:“ .”和“ ” 結(jié)構(gòu)成員本身又是結(jié)構(gòu)變量,稱為嵌套結(jié)構(gòu)。 例如: student1中的 birthday。 =11001。) 將變量中的 sex的地址作為參數(shù)傳遞給 scanf函數(shù),以輸入 sex的值 結(jié)構(gòu)成員的引用 21 結(jié)構(gòu)成員表示和引用的注意事項(xiàng) ( 1)如果成員是 基本類型數(shù)據(jù)則可以直接引用 ; ( 2)在絕對多數(shù)場合(賦值運(yùn)算除外), 只能訪問成員 而不能直接訪問結(jié)構(gòu)本身 。 printf(“%d,%s,%d,%c\n“, student1)?!?Scanf(“%d,%s,%d,%c,%f”,amp。 printf(″%o″,& student1);輸出 student1的首地址 √ 22 ( 3)可以將 一個(gè)結(jié)構(gòu)變量作為一個(gè)整體賦給另一個(gè)具有相同類型的結(jié)構(gòu)變量 ,其作用相當(dāng)于逐個(gè)對位于賦值語句左部的結(jié)構(gòu)變量的每個(gè)分量賦值。 等效于: =。 ………… =。 ( 4) 不允許 將一組常量 直接賦給一個(gè)結(jié)構(gòu)變量 。 23 例 試分析以下程序的執(zhí)行結(jié)果: include struct Birthday { int m。 int y。 void main() {struct Student student1={1001,lili,18,39。,12,15,1982},student2。 printf(student1:%ld %s %d %c %d/%d/%d\n, , , )。 } struct Student { long num。 int age。 struct Birthday birthday1。 24 [補(bǔ)充例 ] 若有以下定義,則正確的賦值語句為 ( )。 char c。 struct date1 { int cat。 } one。A39。A39。A39。A39。如果有 10個(gè)學(xué)生的數(shù)據(jù) 需要參加運(yùn)算,顯然應(yīng)該用 數(shù)組 ,這就是結(jié)構(gòu)體數(shù)組。 26 結(jié)構(gòu)數(shù)組的定義 結(jié)構(gòu)數(shù)組是 基類型為結(jié)構(gòu)類型 的數(shù)組。 定義結(jié)構(gòu)數(shù)組的語法格式: struct 標(biāo)識(shí)符 數(shù)組名 [常量表達(dá)式 ]。 27 結(jié)構(gòu)數(shù)組的定義及其應(yīng)用 ? 后定義 struct child { char initial。 int grade。 ? 同時(shí)定義 struct child { char initial。 int grade。 ? 直接定義 struct { char initial。 int grade。 28 結(jié)構(gòu)數(shù)組的初始化 Struct Student student[2]={{1101,”lilin”,1985,8,1,’M’}, {1102,”wangjing”,1985,7,1,’F’}}。 數(shù)組的下標(biāo)說明會(huì)省略 Student[0] Student[1] 結(jié)構(gòu)數(shù)組的定義及其應(yīng)用 29 引用結(jié)構(gòu)數(shù)組元素 數(shù)組名 [下標(biāo)表達(dá)式 ]或 *(數(shù)組名 +i) 如: employee[2]、 *(employee+i) 引用結(jié)構(gòu)數(shù)組元素的成員 employee[4].name employee[4].salary 注意: ( 1)可以像基本變量那樣使用,如賦值、輸出、計(jì)算等 scanf(“%s%c”, employee[0].name, amp。 ( 2) 不能將結(jié)構(gòu)數(shù)組元素 作為一個(gè)整體進(jìn)行輸入或輸出,但 可以將結(jié)構(gòu)數(shù)組元素作為一個(gè)整體進(jìn)行賦值操作 printf(“%d”,employee[0])。employee[0])。 int age。 } 。 boy[1].age++。 char name[20]。 int age。 } a[5]。 a[1]. name=Lin Hong。 char name[20]。 int age。 } a[5]。 scanf(%c,amp。 scanf(%d,amp。 a[3] = a[0] 。a[3].name)。 char name[20]。 }stu[4]={{1011,li li,21}, {1022,li hong,23}, {1023,wang ping,22}, {1024,zhang san,22} }。 float ave,s=0。i4。 printf(s=%f\n,s)。 printf(average age=%f\n,ave)。A39。B39。C39。 int i, j。 for(i=1。 i++) { scanf(%c,amp。 for(j=0。 j++) if(device_type==array[j].type) array[j].count++。 i3。 } include define N 10 /*設(shè)備數(shù)量 */ struct Device { char type。 }。 ? 我們可以 聲明一個(gè)指針變量 ,用來存放該地址,那么它就指向一個(gè)結(jié)構(gòu)變量。 ? 當(dāng)然,結(jié)構(gòu)變量的成員也可以使指針,甚至可以是指向相同類型結(jié)構(gòu)變量的指針,這是構(gòu)造鏈表的基礎(chǔ)。 例 struct child *p。 int age。 }boy 。boy initial age grade boy p 37 指向結(jié)構(gòu)變量的指針 2. 結(jié)構(gòu)指針的初始化 struct child { char initial。 int grade。 p1 = amp。 p2 = NULL。boy。 int *p=amp。 *p=10。 struct student *p=amp。 =101。 char name[20]。 char sex。 void main() { struct Student student,*p。student。 =89101。 =39。 printf(\nname:%s\nnumber:%ld\nage:%d\nsex:%c\n, , ,)。 printf(\nname:%s\nnumber:%ld\nage:%d\nsex:%c\n“ ,pname,pnum, page,psex)。 char *name。 void main() { struct Student stu={1101,lili}。} 41 指針變量作為結(jié)構(gòu)成員 include struct Student {int number。 }。 scanf(%d,amp。 =(char *)calloc(21,sizeof(char))。 printf(%s\n,)。} 指針變量如果沒有初始化,它的 指向是不確定的 ,也即不可用。 ?介紹三個(gè)存儲(chǔ)管理庫函數(shù),原型說明在 “ ”頭文件中,使用包含到源程序中 ⑴ 動(dòng)態(tài)分配存儲(chǔ)區(qū)函數(shù) malloc( ) 函數(shù)原型: void *malloc(unsigned size)。調(diào)用 結(jié)果為新分配的存儲(chǔ)區(qū)的首地址,是一個(gè) void 類型指針。 43 指針變量作為結(jié)構(gòu)成員 ⑵ 動(dòng)態(tài)分配存儲(chǔ)區(qū)函數(shù) calloc( ) 函數(shù)原型: void *calloc(unsigned int n,unsigned int size)。 調(diào)用結(jié)果為新分配的存儲(chǔ)區(qū)的首地址,是一個(gè) void 類型指針。 44 指針變量作為結(jié)構(gòu)成員 ⑶ 釋放動(dòng)態(tài)分配存儲(chǔ)區(qū)函數(shù) free( ) 函數(shù)原型: void free(void *p)。 調(diào)用格式: free(p) 功能:釋放 p所指向的動(dòng)態(tài)分配的存儲(chǔ)區(qū) 。 Struct A { int a。 }arr[3],*p。 1 2 3 arr[0] arr[1] arr[2] p arr 1 2 3 arr[0] arr[1] arr[2] p arr 46 指向結(jié)構(gòu)數(shù)組的指針 ( 1) pa。 先得到 p指向的結(jié)構(gòu)數(shù)組元素中的 成員 a的值 ,然后 再對 p指針加 1 ( 3) (++ p)a。 先得到 p指向的結(jié)構(gòu)數(shù)組元素中的成員 a的值,然后 再對得到的值加 1 47 例 include struct Student {int num。 char sex。 }。M39。M39。 void main() { struct Student *p。 printf(No. name sex age\n)。pstu+2。 } 48 1.結(jié)構(gòu)體變量作為函數(shù)的形參的三種形式: ( 1)以 結(jié)構(gòu)體變量的成員 作為參數(shù),傳遞結(jié)構(gòu)體變量的 成員的值 。 ? 結(jié)構(gòu)變量整體傳送,即將實(shí)參結(jié)構(gòu)體變量的各個(gè)成員的值逐個(gè)傳遞給形參結(jié)構(gòu)體變量的對應(yīng)成員。 ( 3)以結(jié) 構(gòu)體指針 作為參數(shù),傳遞 結(jié)構(gòu)體變量的地址 。 char name[20]。 }。 printf(%d\n, page)。 struct Student *p。stu[0]。 } 50 例 : 計(jì)算三個(gè)學(xué)生的總分和平均分 (利用結(jié)構(gòu)指針 )。 float score。 int i。 for (i=1。 i++) { sum+=pscore。 } printf(%, % \n, sum, sum/3)。 } 51 結(jié)構(gòu)類型的應(yīng)用 例:定義一個(gè)包括年、月、日成員的結(jié)構(gòu)類型變量,輸入一個(gè)符合常規(guī)的日期,算出該日期是這一年中的第幾天并輸出。判斷該年是否為閏年的條件是:年份是否能被 4整除,但不能 100整除;或能被 400整除;當(dāng)然還要判斷輸入的日期是否有效
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1