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

正文內(nèi)容

實(shí)用c語言程序設(shè)計教程6便捷工具指針ppt-在線瀏覽

2024-12-05 13:51本頁面
  

【正文】 置; ?這就是文件的順序讀寫。 文件的隨機(jī)讀寫: ?文件還可以進(jìn)行隨機(jī)讀寫,即指定任意一個文件指針位置,然后進(jìn)行讀寫,不一定按照文件的順序進(jìn)行。 C語言程序設(shè)計 第 6章 指針 原型: rewind(fp); 功能:無論文件指針當(dāng)前在何處,將文件指針的當(dāng)前位置置于文件的開始處。 ① rewind函數(shù) —— 指向文件首記錄 ② ftell函數(shù) —— 獲取文件指針的當(dāng)前位置 原型: long ftell(fp) 功能:獲取文件指針的當(dāng)前位置。 ftell函數(shù)返回值為長整型數(shù)據(jù),調(diào)用成功返回文件的當(dāng)前位置即相對于文件開始的字節(jié)數(shù);調(diào)用失敗,返回 1L。 n=ftell(fp)。 功能:根據(jù)文件指針的當(dāng)前位置設(shè)定點(diǎn)和位置修正值,將文件指針在當(dāng)前位置設(shè)定點(diǎn)的基礎(chǔ)上,按位置修正值進(jìn)行調(diào)整。 C語言程序設(shè)計 第 6章 指針 例如: fseek(fp,100L,0)。 fseek(fp,0,SEEK_SET)。 將文件指針從文件尾開始向前調(diào)整 2個字節(jié)。 將文件指針從文件當(dāng)前位置開始向前調(diào)整 10個字節(jié)。 include include void main( ) { float stu[10],*q,*p,s。 /*建立文件指針 */ int i。 /*q指針指向數(shù)組 stu*/ p=amp。 /*p指針指向變量 s*/ if ((fp=fopen(student,wb+))==NULL) /*建立指向二進(jìn)制文件的指針 fp*/ { printf(Open error\n)。 } for(i=0。i++,q++) scanf(%f,q)。 /*重置指針 */ fwrite(q,sizeof(float),10,fp)。 /*將文件位置指針重新移至文件首 */ fseek(fp,2*sizeof(float),0)。 /*讀取第三個數(shù)據(jù) */ printf(%f,*p)。 /*關(guān)閉文件 */ } C語言程序設(shè)計 第 6章 指針 (1)利用文件指針進(jìn)行數(shù)據(jù)塊輸入和輸出 二進(jìn)制文件中的數(shù)據(jù)流是非字符的,二進(jìn)制文件的讀寫速度比文本文件高。 /*讀 */ fwrite(buffer, size, count, fp)。在 fwrite函數(shù)中,它表示存放輸出數(shù)據(jù)的首地址。 ③ count表示要讀寫的數(shù)據(jù)塊塊數(shù)。 C語言程序設(shè)計 第 6章 指針 例如: fread(a,4,5,fp)。 fwrite(q,sizeof(float),10,fp)。 C語言程序設(shè)計 第 6章 指針 多級指針概念與地址關(guān)系 ?指針是間接訪問內(nèi)存對象的手段。 C語言程序設(shè)計 第 6章 指針 二級指針的定義形式如下: 基類型 **指針變量; 說明: “ **” 是指向指針的指針標(biāo)志,其 基類型 是其所指向的指針指向的對象的類型。i。p1。第一個 *表示 p2指向的是一個指針變量 。 但 p1只能指向整型變量, p2只能指向基類型是整型的指針變量,而不能指向其它任何非指針類型的變量。i。 p1=p2。 p2=p1。 因?yàn)?p1和 p2是兩種 基類型不同 的指針。 (3)二 /多級指針主要用于多維數(shù)組、指針數(shù)組以及函數(shù)參數(shù)傳遞等。 C語言程序設(shè)計 第 6章 指針 1. 指向一維數(shù)組的指針 指向一維數(shù)組和數(shù)組元素的指針 ? 建立指向數(shù)組的指針,即獲得數(shù)組的首地址: 數(shù)組名 。 例: int m[10], *p=m。 C語言程序設(shè)計 第 6章 指針 2. 指向數(shù)組元素的指針 ? 所謂指向數(shù)組元素的指針,即取得某元素的地址。 例, float n[10],*p,*q。n[0]。n[9]。 C語言程序設(shè)計 第 6章 指針 ? 一維數(shù)組的數(shù)組名和第一個數(shù)組元素的地址是等價的。首先,它們?nèi)〉玫刂返乃俣仁遣煌?;其次,含義也不一樣。 m+0把數(shù)組(行地址)指針變換為數(shù)組元素的(列)地址。 for(i=0。i++ ) scanf(%d,amp。 /*下標(biāo)法訪問 */ for(i=0。i++ ) printf(%5d,a[i])。 for ( i=0。i++ ) printf(%5d,p[i])。 for ( i=0。i++ ) printf(%5d,*(a+i))。 for( 。p++ ) printf(%5d,*p)。 p=amp。 for( i=0。i++ ) printf(%5d,*(p+i))。 C語言程序設(shè)計 第 6章 指針 ①如果使用 a[i]或 *(a+i)訪問數(shù)組元素,執(zhí)行效率是相同的。即通過數(shù)組首地址計算出數(shù)組元素地址,然后取出數(shù)組元素的值。 ②用指針變量直接指向數(shù)組元素,不必每次都重新計算地址,像 p++這樣的自加操作是比較快的。 ③用下標(biāo)法比較直觀,能直接知道是第幾個數(shù)組元素。用地址法或指針變量法不直觀,難以很快地判斷出當(dāng)前處理的是哪一個數(shù)組元素。 程序剖析 C語言程序設(shè)計 第 6章 指針 3. 指向一維字符數(shù)組 /字符串的指針 例,建立一個指向一維字符數(shù)組的指針: char str[10]= {39。,39。,39。,39。},*p。 /*通過 str取得字符數(shù)組的地址,等價于 p=amp。 /*p是指向數(shù)組的指針,等價于 pus(str) */ C語言程序設(shè)計 第 6章 指針 例,建立一個指向字符串常量的指針。 /*指向字符串常量中的首字符 */ printf(%s,p)。 /*指向字符串中首字符的字符指針 */ printf(%s,p)。 C語言程序設(shè)計 第 6章 指針 include include void main( ) { char str1[80], str2[80], *p1=str1, *p2=str2。 gets(p1)。\039。 p2++。 /*指針 p2重新賦值 */ printf(string 2:)。 } 【 例 68】 利用指針編程,將字符串 str1復(fù)制到字符串 str2中。 p2++。 C語言程序設(shè)計 第 6章 指針 分析: ( 1)問題陳述:要求用戶能夠從鍵盤輸入一篇英文摘要。應(yīng)該能夠處理有多個段落的文章。 ②利用字符數(shù)組串存放一個文章段落。在程序中將使用文件字符串輸入輸出 ——fgets和 fputs函數(shù)。 C語言程序設(shè)計 第 6章 指針 算法偽代碼描述: /*算法開始 */ 文件指針定義; 段落數(shù)組定義,用字符指針指向該數(shù)組; 新建或打開文本文件;(新建功能) 利用指針從鍵盤輸入文章 :(程序中最多可以輸入 10個段落,輸入功能實(shí)現(xiàn) ) for(i=0。i++) { gets(s2)。 /*連接回車 */ fputs(str2,fp)。i10。 /*從文件取回的字符串 */ printf(%s,s2)。 FILE *fp。 /*字符數(shù)組存放一個文章段落 */ s2=str2。 if((fp=fopen(,w+))==NULL) { printf(Open error\n)。 } /*文件指針指向 */ C語言程序設(shè)計 第 6章 指針 /*把字符串寫入文件 */ fputs(str1,fp)。 /*存入回車 */ for(i=0。i++) /*最多可以輸入 10個段落 */ { printf(第 %d句 :,i+1)。 /*通過指針輸入字符串 */ strcat(str2,\n)。 /*輸出該句到文件 */ } fseek(fp,0,SEEK_SET)。 for(i=0。i++) { fgets(s2,100,fp)。 /*通過指針輸出字符串 */ } fclose(fp)。 ?從內(nèi)存管理而言,二維數(shù)組是按行優(yōu)先順序存放的 ?指向二維數(shù)組元素的指針是一級指針。x[0][0]。 C語言程序設(shè)計 第 6章 指針 【 例 69】 閱讀并理解程序中引用二維數(shù)組元素的方法。 int *pd=amp。 /*pd指向二維數(shù)組首元素 ,一級指針 */ k=5。 /*二維數(shù)組轉(zhuǎn)換為一維 ,pd+k指向 pd指針之后第 5個元素 */ *pd++。 /*注意 pd當(dāng)前值 */ pd。 /*輸出第 2行的第 3個元素 */ scanf(%d,pd+3*1+2)。 /*輸出第 2行的第 3個元素 */ for(i=0。i++) printf(%d ,*pd++)。 ?行元素即二維數(shù)組的一行。 ?指向行元素的指針就叫行指針 例 : 二維數(shù)組 x[3][3]的行元素分別是 x[0]、 x[1]、 x[2],行元素是一級指針,各自指向(或代表)有 3列的一個行數(shù)組。 說明: 運(yùn)算符“ ( )”與“ [ ]”的優(yōu)先級相同,結(jié)合方向一樣,所以 p先與“ *”號結(jié)合, 說明 p是一個指針變量 , 然后 p再與“ [ ]”結(jié)合, 說明該指針變量指向一個有 3個元素的一維數(shù)組 。 二維數(shù)組的 行元素 是一級指針, 指向行元素的 行指針 即為二級指針。 C語言程序設(shè)計 第 6章 指針 例如,有以下語句組: int a[3][4], (*p)[4]。 p=a。 /*行指針 p下移 1行,指向第 2個行元素 */ p++。 用 p表示 a[i][j]的方式有: p[i][j]、 *(p[i]+j)、 *(*(p+i)+j)、 (*(p+i))[j]。 C語言程序設(shè)計 第 6章 指針 【 例 610】 假設(shè)有某數(shù)組 a[4][5],從鍵盤輸入該數(shù)組各元素的值,然后使用行指針設(shè)計并解決下列問題。 ( 2)處理流程 ①定義行指針 p,讓 p指向數(shù)組 a。 ③計算并輸出第 2行的數(shù)據(jù)和。 ⑤找出并輸出前 3行數(shù)據(jù)中的最大值。 ⑦找出并輸出指定值的位置。 /*k為標(biāo)記變量 */ p=a。 for(i=0。i++) for(j=0。j++) scanf(%d,p[i]+j)。 scanf(%d,amp。 printf(二維數(shù)組各元素如下: \n)。iN。jM。 printf(\n)。 for(i=0。i++) sum1=*(p[1]+i)+sum1。 printf(二維數(shù)組第 3列元素的和值如下: \n)。iN。 printf(%d\n,sum2)。 max=*p[0]。i3。jM。 printf(%d\n,max)。 min=*(p[0]+1)。iN。jM。 printf(%d\n,min)。iN。jM。 k=1。 /*找到則退出循環(huán) */ } if(i==N) printf(沒有該數(shù) )。 ? 最常用的是一維指針數(shù)組,常用于處理二維數(shù)組或多個字符串。 C語言程序設(shè)計 第 6章 指針 指針數(shù)組與二維數(shù)值數(shù)組的關(guān)聯(lián) ?把二維數(shù)值數(shù)組和與該二維數(shù)值數(shù)組 行數(shù)相同 的一維指針數(shù)組相關(guān)聯(lián),讓指針數(shù)組的每個指針元素按順序指向該二維數(shù)值數(shù)組的每一行,通過一維指針數(shù)組就可以和以二維數(shù)組名完全等價的方式表示二維數(shù)組中任意一個元素。 …… for(i=0。i++) p[i]=a[i]; /*指針數(shù)組元素 p[i]指向 i行 */ 指針數(shù)組名 p可以替代二維數(shù)組名 a表示任意二維數(shù)組元素 a[i][j],表示形式有: p[i][j]、 *(p[i]+j)、 *(*(p+i)+j)、 (*(p+i))[j]。 分析: (1)定義二維數(shù)組: int bb[N][N]。 (2) 定義指針數(shù)組: int *p[N]。 (3)通過指針數(shù)組訪問二維數(shù)組各元素值。如果元素的下標(biāo) i和 j滿足
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1