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

正文內容

c語言程序設計一體化案例教程下ppt-wenkub

2023-04-26 22:12:40 本頁面
 

【正文】 p+i)? 問題思考:? C 語言數(shù)組下標從 0 開始是為了提高運行效率。}? 程序運行結果:a[0]=0 a[1]=1 a[2]=2 a[3]=3 a[4]=4 a[5]=5a[0]=0 a[1]=1 a[2]=2 a[3]=3 a[4]=4 a[5]=5a[0]=0 a[1]=1 a[2]=2 a[3]=3 a[4]=4 a[5]=5a[0]=0 a[1]=1 a[2]=2 a[3]=3 a[4]=4 a[5]=5? 問題分析: 由源程序和程序的運行結果可見? 設 p=a , 則 p+i 、 a+i 、 amp。i6。案例 用指針訪問一維數(shù)組元素 ( 續(xù) 1)for(printf( \ n),i=0。i++) /* ① 指針變量法 */printf(a[%d]=%d \ t,i,* p++ )。i6。? C 語言規(guī)定,在說明一個數(shù)組后, 該數(shù)組名便作為一個常量指針 來使用,其值為該數(shù)組在內存中的起始地址,即數(shù)組的第 0 個元素的起始地址;其型是該數(shù)組元素類型。/* 分別輸出 pc 所指字符、 pc 本身和 pc 所指字符串 */printf( \ n*pc=%c \ tpc=%p \ tc[]=%s \ n,*pc,pc,pc)。i。a[1],b=++*p : ++* p 等價于 ++(* p) 。? p=amp。? p=amp。 運算。設有說明:int a[5]={10,20,30,40,50},*p=amp。 /* 等價于: sum+=*p2,p2++。a[0]+5。 p2=amp。? 相等比較:判斷兩個指針是否指向相同的變量? 不等比較:判斷兩個指針是否指向不同的變量? 與 0 比較:判斷指針值是否為空? 指針的關系運算主要用于數(shù)組。主要用于數(shù)組。? 指針變量加或減一個整型值 n : 使指針變量指向其后或 其的第 n 個變量。? 指針變量執(zhí)行 ++ 或 操作: 使指針變量指向下一個或上一個變量。即 p 所指存儲單元可能未分配,也可 能已分配;若是后者,把 數(shù)據(jù)寫入 p 所指存儲單元,輕者運行出錯,重者系 統(tǒng)出錯或崩潰。 used without having been initialized 。scanf(%d, p )。隨機指針變量? 隨機指針變量: 未初始化的指針變量。printf(*fp= %g ,*ip= %d \ n, *fp , *ip )。? 不同類型的指針變量間的賦值,需轉換成同一類型后方可,但應有明確的目的和意義。? 靜態(tài)存儲種類的指針變量,其缺省的初值為 0 。 /* 空指針 */* p=100。 空指針不指向任何變量。*p1 = *p1 +2。p1=amp。? 指針的賦值: 將一個指針賦給一個指針變量。C語言程序設計一體化案例教程(下) 清華大學出版社 第 08章 指針 第 09章 自定義數(shù)據(jù)類型 第 10章 文件 第 8 章 指針? 概念: 參見 節(jié)? 應用:? 指針做函數(shù)參數(shù)、做函數(shù)返回值 :參見 節(jié)? 數(shù)組做函數(shù)參數(shù) :參見案例 ? 指針與數(shù)組的關系、指針數(shù)組、指針的指針、函數(shù)指針、堆內存的申請、釋放與使用 : 本章? 指針與結構體的關系 、 單向鏈表 :參見 第 9 章? 利弊: 正確使用指針,能有效使用各種復雜數(shù)據(jù)結構,動態(tài)分配內存,高效使用數(shù)組和字符串,編寫通用程序等;但不當使用,可導致運行出錯或死機。合法的指針值是正確使用指針的基礎。a。使 p1 所指變量 ( a) 的值為 3 。? 空指針變量: 值為空指針的指針變量。 /* 但運行時出錯并終止執(zhí)行 */? 如何避免上述錯誤: 在指針變量操作前,先判斷其值是否為 0 來判斷它所指內存的合法性:int* p=0。指針的強制類型轉換? 可將整型常量轉換成指針后賦給指針變量:int *p= (int*)0x7fffff 。float x=,*fp=amp。運行結果為:* fp= , *ip=1075838976? 取 ip 所指變量時,按整數(shù)格式解釋,輸出整數(shù) 1075838976 ,而不是浮點數(shù) 。 對隨機指針變量所指存儲單元賦值是極其危險的 。printf(%d \ n,*p)。? 重視警告: 把警告視為錯誤,以彌補編程時的疏忽。? 設有以下定義:int a[6]={10,20,30,40,50,60},*p1=amp。例如:p1++。例如:p1+=2。例如:p2 p1。 例如:int a[5]={10,20,30,40,50},*p1,*p2,sum=0。a[4] 。 p2=amp。*/printf( \ n 元素之和為: % d \ n,sum)。a[0],b。? *amp。a[0],b=*p++ : 對于 * p++ , 先做 ++ ,再做 * ,因 ++ 為后置運算,故等價于先取 * p ,再使指針 p 加 1 。a[0],b=(*p)++ : 先取 * p ,再使 * p 加 1 。* 、 amp。char c[]=abcd,*pc=amp。? 一次運行結果:* pi=10 pi=0022FF4C*pc=a pc=0022FF30 c[]=abcd? 結果說明:因 pi 和 pc 的內存由系統(tǒng)分配,故讀者上機運行上述程序段時,輸出的 pi 和 pc 的值可能有所不同。案例 用指針訪問一維數(shù)組元素? 問題描述: 下列程序演示了用指針變量訪問數(shù)組元素的各種方法,試分析這些訪問方法的效率。i++, p++ )/* 指針變量法初始化數(shù)組 a*/*p=i 。for(printf( \ n), p=a ,i=0。i6。i++) /* ④ 下標法 */printf(a[%d]=%d \ t,i, p[i] )。a[i] 均為 a[i] 的 指 針 ;*( p+i) 、 *(a+i) 、 p[i] 和 *amp。? C 語言不對數(shù)組下標和指針越界做檢查,也是為了提高運行效率。例如:int a[3][3]={{1,2,3},{4,5,6},{7,8,9}},i,j,* p 。i++,printf( \ n))for(j=0。*/? 常量指針法: a[i][j] 的指針為p+3*i+j , 但算式復雜、運行效率低且未充分體現(xiàn)二維數(shù)組的特點。如圖 ( a) 所示。int a[M][N]。a[i][j]元素 a[i][j] 也有如下等價表示:⑴ *( a[i]+j)⑵ *(*(a+i)+j)⑶ (*(a+i))[j]案例 用指針訪問二維數(shù)組元素 ( 續(xù) 3)? 推廣:設有下列說明 (M 、 N 均為符號常量 ) :? 結論驗證includeint main(void){ int a[3][3]={{1,2,3},{4,5,6},{7,8,9}},i,j,*p。i++){ if(iamp。}案例 用指針訪問二維數(shù)組元素 ( 續(xù) 4)printf( \ n 用指針輸出數(shù)組的各個元素: \ n)。amp。for(i=0。j++)printf(%d \ t%d \ t%d \ t%d \ n,*(a[i]+j) , *(*(a+i)+j) , (*(a+i))[j] , a[i][j] )。? 指向一維數(shù)組的指針變量,即二維數(shù)組的行指針變量。? 因 p 是行指針,故 * p 、 *p+1 、 *p+2 、 *p+3 依次為 p 所指一維數(shù)組的 4 個元素的指針,對 p 所指一維數(shù)組的 4 個元素的訪問形式為: *(* p) 、 *(*p+1) 、 *(*p+2) 、 *(*p+3) , 再等價寫成一維數(shù)組元素形式: (* p)[0] 、(*p)[1] 、 (*p)[2] 、(*p)[3] 。案例 用行指針訪問二維數(shù)組元素 ( 續(xù) 1)? 結論驗證: includeint main(void){ int a[3][3]={{1,2,3},{4,5,6},{7,8,9}},i,j,(*p)[3]。i++){ p=amp。for(p=a,i=0。j++)printf(%d,%d,%d \ n,*(*(p+i)+j) , *(p[i]+j) , (*(p+i))[j] , p[i][j] )。i3。return dest。return 0。 \ 0 39。 為止。 p[i]=src[i] 。 }但這樣不便于調用。? 不如用指針復制字符來得高效和簡便。char*p=You are a student!。字符指針變量可接受任何字符指針。 /* 警告: p 指向不定,潛存危險 */p=s2 。? 用字符串的值初始化 p 。指針數(shù)組中的每個元素均為指針。i++)printf(%d \ t,*p[i])。? 指針數(shù)組 sp 的每個元素指向一個字符串。案例 字符串排序 ( 續(xù) 1)依次直到在 sp[4] 指針所指范圍為止。for(i=0。j++)if(strcmp(sp[k],sp[j])0)k=j。char*sp[]={s[0],s[1],s[2],s[3],s[4]}。for(i=0。}案例 字符串排序 ( 續(xù) 3)? 程序運行結果:BASICComputer designDepartmentFollow meGreat wall? 問題討論: 也可用整型數(shù)組記錄待排序字符串的字符數(shù)組的下標,在不換字符串的情況下,將字符串排序后輸出。i++){ for(k=i,j=i+1。}}int main(void){ char s[][100]={Follow me,BASIC,Great wall,Department,Computer design}。in。? 排序后,存 s 中 n 個已排序的字符串的下標。for(i=0。這樣,二維數(shù)組元素 a[i][j] ( 0 ≤ i < 3 , 0 ≤ j < 3) 的訪問形式還可表示為:① *( p[i]+j)② *(*(p+i)+j)③ (*(p+i))[j]④ p[i][j]案例 通過指針數(shù)組訪問二維數(shù)組? 程序實現(xiàn): includeint main(void){ int i,j, *p[3] ,a[3][3]={{1,2,3},{4,5,6},{7,8,9}}。j3。? 思路分析: 設有以下語句:int a[9], *p[3] ,i,j。則指針數(shù)組 p 將一維數(shù)組 a 分成三段,每段 3 個整型元素。 對于案例 來說:? 用二維字符數(shù)組的一行存放一個字符串時,每行末 尾的存閑置,無法利用。 ,最后一個字符串的結束符后再由系統(tǒng)自動添加一個 39。 \ 0 39。char*sp[10],*p1,*p2。 \ 039。 /* 調用案例 定義的 Sort 函數(shù) */for(i=0。}案例 將一維數(shù)組轉換成二維數(shù)組 ( 續(xù) 2) 二級指針? 若要保存指針變量的指針值,則要使用二級指針變量。x, **q=amp。? 若希望通過二級指針變量 q 訪問變量 x , 則可對 q 指針做兩次取變量運算,即 ** q 訪問的是普通變量 x 。 *x = *y 。sp[i])。*x=*y。a,amp。} 帶參數(shù)的 main 函數(shù)? 命令行參數(shù)簡介:? 命令行參數(shù)的作用: 增加程序的靈活性、適應性。若參數(shù)本身包含空格,則該參數(shù)需用雙引號括起來。? 問題描述: 顯示命令行參數(shù),理解命令行 參數(shù)的數(shù)據(jù)結構。? 第一個參數(shù)保存實際命令行所帶的參數(shù)個數(shù)。 includeint main(int argc,char *argv[]){ int i。return 0。? 問題描述: 使用命令行參數(shù)計算任意個整數(shù)的和。return 1。for(printf(%s,argv[1]),i=2。return 0。 步驟:? 選 Project|Settings , 打開 Project Settings 對話框 ;? 選 Debug 選項卡,在 Program arguments: 編輯框中,輸入 1 2 3( 注意:此時不要包含命令名) 。 并設 位于 C: \ T \ debug 目錄下。? 函數(shù)指針變量的定義格式 :類型名 (* 變量名 )( 參數(shù)表 )。? 賦值后,可用它調用函數(shù)。 /* 函數(shù)指針定義 */p=add。/* 用函數(shù)指針調用函數(shù) */return 0。? 可變函數(shù)參數(shù)化 ( 用函數(shù)指針 ) : 被積函數(shù)。 }float f2(float x){ return (x+x*x)/(1+sin(x)+x*x)。in。printf( 第二個積分值: % g \ n,integral( f2 ,1,3,1000))。 班級人數(shù)事先不知,如何定義數(shù)組?? 預估班級人數(shù)的最大值 ( 如 100) ,用符號常量 MAX 表示: define MAX 100 /* 預估班級人數(shù)的最大值 */…int n, a[MAX] 。 exit(2)?!蛔悖?①若 nMAX , 則 a 數(shù)組的內存有閑置;②若 nMAX ,程序無法運行,盡管并非沒有足夠內存可用。 /* 輸入班級實
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1