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

正文內(nèi)容

實(shí)用c語言程序設(shè)計(jì)教程6便捷工具指針ppt-文庫(kù)吧

2025-09-19 13:51 本頁(yè)面


【正文】 ewind(fp)。 /*將文件指針位置移至文件首 */ fscanf(fp, %d %d,amp。k,amp。n)。 printf(%d %d\n,k,n)。 fclose(fp)。 /*關(guān)閉文件指針指向的數(shù)據(jù)文件 */ } C語言程序設(shè)計(jì) 第 6章 指針 文件的順序讀寫: ?文件打開時(shí),文件指針指向文件的首位置; ?文件的讀寫是在文件指針的當(dāng)前位置進(jìn)行的; ?每完成一次讀寫操作,文件指針自動(dòng)下移一個(gè)位置; ?這就是文件的順序讀寫。 fscanf、 fprintf等是順序文件讀寫函數(shù)。 文件的隨機(jī)讀寫: ?文件還可以進(jìn)行隨機(jī)讀寫,即指定任意一個(gè)文件指針位置,然后進(jìn)行讀寫,不一定按照文件的順序進(jìn)行。 ?使用改變文件指針當(dāng)前位置的函數(shù),實(shí)現(xiàn)文件的隨機(jī)讀寫。 C語言程序設(shè)計(jì) 第 6章 指針 原型: rewind(fp); 功能:無論文件指針當(dāng)前在何處,將文件指針的當(dāng)前位置置于文件的開始處。其中, fp為文件指針。 ① rewind函數(shù) —— 指向文件首記錄 ② ftell函數(shù) —— 獲取文件指針的當(dāng)前位置 原型: long ftell(fp) 功能:獲取文件指針的當(dāng)前位置。 說明: fp為文件指針。 ftell函數(shù)返回值為長(zhǎng)整型數(shù)據(jù),調(diào)用成功返回文件的當(dāng)前位置即相對(duì)于文件開始的字節(jié)數(shù);調(diào)用失敗,返回 1L。 例, long n。 n=ftell(fp)。 文件指針定位 函數(shù) C語言程序設(shè)計(jì) 第 6章 指針 ③ fseek函數(shù) —— 指向指定位置 一般形式為: fseek(fp,位置修正值 ,當(dāng)前位置設(shè)定點(diǎn) )。 功能:根據(jù)文件指針的當(dāng)前位置設(shè)定點(diǎn)和位置修正值,將文件指針在當(dāng)前位置設(shè)定點(diǎn)的基礎(chǔ)上,按位置修正值進(jìn)行調(diào)整。 說明: ? fp為文件指針; ?位置修正值是位移量,是 long型數(shù)據(jù),表示以當(dāng)前位置設(shè)定點(diǎn)為起始點(diǎn)移動(dòng)的相對(duì)值; ?當(dāng)前位置設(shè)定點(diǎn)是 int型數(shù)據(jù),表示移動(dòng)的起始位置; ?位置修正值和當(dāng)前位置設(shè)定點(diǎn)都是以字節(jié)為單位。 C語言程序設(shè)計(jì) 第 6章 指針 例如: fseek(fp,100L,0)。 把位置指針移到離文件首 100個(gè)字節(jié)處。 fseek(fp,0,SEEK_SET)。 將文件指針從文件頭開始向后調(diào)整 0個(gè)字節(jié),即文件的開始fseek(fp,2,SEEK_END)。 將文件指針從文件尾開始向前調(diào)整 2個(gè)字節(jié)。 fseek(fp,10L,1)。 將文件指針從文件當(dāng)前位置開始向前調(diào)整 10個(gè)字節(jié)。 【 例 66】 閱讀并理解程序中通過文件指針操作數(shù)據(jù)。 include include void main( ) { float stu[10],*q,*p,s。 FILE *fp。 /*建立文件指針 */ int i。 q=stu。 /*q指針指向數(shù)組 stu*/ p=amp。s。 /*p指針指向變量 s*/ if ((fp=fopen(student,wb+))==NULL) /*建立指向二進(jìn)制文件的指針 fp*/ { printf(Open error\n)。exit(0)。 } for(i=0。i10。i++,q++) scanf(%f,q)。 /*指針移動(dòng) ,輸入數(shù)組數(shù)據(jù) */ q=stu。 /*重置指針 */ fwrite(q,sizeof(float),10,fp)。 /*把數(shù)組中的數(shù)據(jù)分 10次寫入二進(jìn)制文件中 */ rewind(fp)。 /*將文件位置指針重新移至文件首 */ fseek(fp,2*sizeof(float),0)。 /*將文件指針位置移至第三個(gè)數(shù)據(jù) */ fread(p,sizeof(float),1,fp)。 /*讀取第三個(gè)數(shù)據(jù) */ printf(%f,*p)。 /*輸出第三個(gè)數(shù)據(jù) */ fclose(fp)。 /*關(guān)閉文件 */ } C語言程序設(shè)計(jì) 第 6章 指針 (1)利用文件指針進(jìn)行數(shù)據(jù)塊輸入和輸出 二進(jìn)制文件中的數(shù)據(jù)流是非字符的,二進(jìn)制文件的讀寫速度比文本文件高。 (2)二進(jìn)制文件的讀寫函數(shù) ——fread函數(shù)和 fwrite函數(shù) 一般形式為: fread(buffer, size, count, fp)。 /*讀 */ fwrite(buffer, size, count, fp)。 /*寫 */ 說明: ① buffer是一個(gè)指針,在 fread函數(shù)中,它表示存放輸入數(shù)據(jù)的首地址。在 fwrite函數(shù)中,它表示存放輸出數(shù)據(jù)的首地址。 ② size表示數(shù)據(jù)塊的字節(jié)數(shù)。 ③ count表示要讀寫的數(shù)據(jù)塊塊數(shù)。 ④ fp表示文件指針。 C語言程序設(shè)計(jì) 第 6章 指針 例如: fread(a,4,5,fp)。 從文件指針 fp所指的文件中,每次讀 4個(gè)字節(jié)(一個(gè)實(shí)數(shù))送入實(shí)型數(shù)組 a中,連續(xù)讀 5次,即讀 5個(gè)實(shí)數(shù)到 a中。 fwrite(q,sizeof(float),10,fp)。 把 q指針?biāo)赶驍?shù)據(jù)塊中的數(shù)據(jù)分 10次,以實(shí)型數(shù)據(jù)寫入 fp所指向的二進(jìn)制文件中。 C語言程序設(shè)計(jì) 第 6章 指針 多級(jí)指針概念與地址關(guān)系 ?指針是間接訪問內(nèi)存對(duì)象的手段。 ?指針變量可存儲(chǔ)各種類型變量的地址 . ?直接指向被訪問變量對(duì)象的指針為一級(jí)指針 . ?存放指針變量地址的指針變量稱為指向指針的指針,也稱為 多級(jí)指針 。 C語言程序設(shè)計(jì) 第 6章 指針 二級(jí)指針的定義形式如下: 基類型 **指針變量; 說明: “ **” 是指向指針的指針標(biāo)志,其 基類型 是其所指向的指針指向的對(duì)象的類型。 C語言程序設(shè)計(jì) 第 6章 指針 例 : int i=3,*p1=amp。i。 /*指針 p1指向變量 i, p1是一級(jí)指針 */ int **p2=amp。p1。 /*指針 p2指向指針變量 p1, p2是二級(jí)指針 */ int **p2 可理解為 int *(*p2) *p2表示 p2是個(gè)指針變量 。第一個(gè) *表示 p2指向的是一個(gè)指針變量 ?;愋?int表示這個(gè)二級(jí)指針最終指向個(gè)整型變量 基類型 C語言程序設(shè)計(jì) 第 6章 指針 注意: (1) p p2都是指針變量 。 但 p1只能指向整型變量, p2只能指向基類型是整型的指針變量,而不能指向其它任何非指針類型的變量。 p2=amp。i。 是不合法的。 p1=p2。 是不合法的。 p2=p1。 是不合法的。 因?yàn)?p1和 p2是兩種 基類型不同 的指針。 (2)程序設(shè)計(jì)中,不常用多級(jí)指針訪問簡(jiǎn)單變量。 (3)二 /多級(jí)指針主要用于多維數(shù)組、指針數(shù)組以及函數(shù)參數(shù)傳遞等。 C語言程序設(shè)計(jì) 第 6章 指針 利用指針訪問數(shù)組 指向一維數(shù)組和數(shù)組元素的指針 指向二(多)維數(shù)組和數(shù)組元素的指針 利用指針引用數(shù)組元素往往比利用下標(biāo)引用數(shù)組元素運(yùn)行速度要快。 C語言程序設(shè)計(jì) 第 6章 指針 1. 指向一維數(shù)組的指針 指向一維數(shù)組和數(shù)組元素的指針 ? 建立指向數(shù)組的指針,即獲得數(shù)組的首地址: 數(shù)組名 。 ? 一維數(shù)組的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)一致,指向一維數(shù)組的指針也指向第一個(gè)元素,所以指向一維數(shù)組的指針是一級(jí)指針。 例: int m[10], *p=m。 ? 從存儲(chǔ)結(jié)構(gòu)上看,指向數(shù)組的指針是按行操作的,但一維數(shù)組只有一行。 C語言程序設(shè)計(jì) 第 6章 指針 2. 指向數(shù)組元素的指針 ? 所謂指向數(shù)組元素的指針,即取得某元素的地址。 ? 一維數(shù)組是通過 “ 數(shù)組名 +下標(biāo)位置 ” 取得元素的地址。 例, float n[10],*p,*q。 p=amp。n[0]。 q=amp。n[9]。 ? 從存儲(chǔ)結(jié)構(gòu)上看,指向數(shù)組元素的指針是按列操作的。 C語言程序設(shè)計(jì) 第 6章 指針 ? 一維數(shù)組的數(shù)組名和第一個(gè)數(shù)組元素的地址是等價(jià)的。但前者是由 m直接取得,后者是由 m+0計(jì)算后取得。首先,它們?nèi)〉玫刂返乃俣仁遣煌?;其次,含義也不一樣。 m是指向一維數(shù)組的指針(行), m+0是指向數(shù)組元素的指針(列)。 m+0把數(shù)組(行地址)指針變換為數(shù)組元素的(列)地址。 C語言程序設(shè)計(jì) 第 6章 指針 include void main() { int a[10],i,*p=a。 for(i=0。i10。i++ ) scanf(%d,amp。a[i])。 /*下標(biāo)法訪問 */ for(i=0。i10。i++ ) printf(%5d,a[i])。 /*下標(biāo)法訪問數(shù)組元素 */ printf(\n)。 for ( i=0。i10。i++ ) printf(%5d,p[i])。 /*指針下標(biāo)法 */ printf(\n)。 for ( i=0。i10。i++ ) printf(%5d,*(a+i))。 /*地址法訪問數(shù)組元素 */ printf(\n)。 for( 。p(a+10)。p++ ) printf(%5d,*p)。 /*指針法訪問數(shù)組元素 */ printf(\n)。 p=amp。a[0]。 for( i=0。i10。i++ ) printf(%5d,*(p+i))。 /*指針法訪問數(shù)組元素 */ } 【 例 67】 閱讀并理解程序中訪問數(shù)組元素的各種方法。 C語言程序設(shè)計(jì) 第 6章 指針 ①如果使用 a[i]或 *(a+i)訪問數(shù)組元素,執(zhí)行效率是相同的。 C編譯系統(tǒng)是將 a[i]轉(zhuǎn)換為 *(a+i)來處理的。即通過數(shù)組首地址計(jì)算出數(shù)組元素地址,然后取出數(shù)組元素的值。這兩種方法計(jì)算數(shù)組元素費(fèi)時(shí)較多。 ②用指針變量直接指向數(shù)組元素,不必每次都重新計(jì)算地址,像 p++這樣的自加操作是比較快的。這種有規(guī)律地改變地址值 (p++)能大大提高執(zhí)行效率。 ③用下標(biāo)法比較直觀,能直接知道是第幾個(gè)數(shù)組元素。例如, a[5]是數(shù)組中下標(biāo)為 5的元素。用地址法或指針變量法不直觀,難以很快地判斷出當(dāng)前處理的是哪一個(gè)數(shù)組元素。要仔細(xì)分析指針變量 p的當(dāng)前指向,才能判斷當(dāng)前輸出的是第幾個(gè)數(shù)組元素。 程序剖析 C語言程序設(shè)計(jì) 第 6章 指針 3. 指向一維字符數(shù)組 /字符串的指針 例,建立一個(gè)指向一維字符數(shù)組的指針: char str[10]= {39。a39。,39。b39。,39。c39。,39。d39。},*p。 p=str。 /*通過 str取得字符數(shù)組的地址,等價(jià)于 p=amp。str[0]*/ puts(p)。 /*p是指向數(shù)組的指針,等價(jià)于 pus(str) */ C語言程序設(shè)計(jì) 第 6章 指針 例,建立一個(gè)指向字符串常量的指針。 char *p=microsoft。 /*指向字符串常量中的首字符 */ printf(%s,p)。 /*通過指針操作字符串常量 */ 等價(jià)于 char *p; p=microsoft。 /*指向字符串中首字符的字符指針 */ printf(%s,p)。 ? 字符串常量有特定的存儲(chǔ)區(qū)域,將一個(gè)字符串常量賦給一個(gè)字符指針變量時(shí),編譯系統(tǒng)將自動(dòng)把字符串常量的存儲(chǔ)區(qū)首地址賦給指針變量,使指針指向該字符串。 C語言程序設(shè)計(jì) 第 6章 指針 include include void main( ) { char str1[80], str2[80], *p1=str1, *p2=str2。 printf(Enter string 1:)。 gets(p1)。 while((*p2=*p1)!= 39。\039。 ) { p1++。 p2++。 } /*指針 p1和 p2分別向后移動(dòng) 1個(gè)字符 */
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1