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

正文內(nèi)容

實(shí)用c語言程序設(shè)計(jì)教程6便捷工具指針ppt(已修改)

2024-10-30 13:51 本頁面
 

【正文】 第 6章 便捷工具 ——指針 C語言程序設(shè)計(jì) Programming in C C語言程序設(shè)計(jì) 第 6章 指針 —— 思考與實(shí)用的結(jié)合,就能產(chǎn)生明確的概念,就能找到一些簡便方法,這些方法的發(fā)現(xiàn)激勵(lì)著自尊心,而方法的準(zhǔn)確性又能使智力得到滿足,原來枯燥無味的工作,有了簡便方法,就令人感到興趣了。 C語言程序設(shè)計(jì) 第 6章 指針 理解變量指針和地址 理解數(shù)組指針的概念、定義和運(yùn)算 應(yīng)用指針運(yùn)算符 amp。和 *等 通過指針訪問數(shù)組元素、字符數(shù)組 理解指針和數(shù)組間的關(guān)系 理解并應(yīng)用函數(shù)引用中的指針 理解二級指針與指針數(shù)組 理解動(dòng)態(tài)內(nèi)存分配 本章教學(xué)目標(biāo) C語言程序設(shè)計(jì) 第 6章 指針 教學(xué)重點(diǎn)和難點(diǎn) 重點(diǎn) ? 指針與數(shù)組 ? 指針數(shù)組 難點(diǎn) ? 指針數(shù)組 ? 通過指針訪問數(shù)組元素 C語言程序設(shè)計(jì) 第 6章 指針 本章內(nèi)容 指針的基本操作與運(yùn)算 利用指針訪問數(shù)組 指針數(shù)組 指針與函數(shù) 動(dòng)態(tài)內(nèi)存分配 C語言程序設(shè)計(jì) 第 6章 指針 以 更 簡 潔的 方 式 引 用大 的 數(shù) 據(jù)結(jié) 構(gòu) ( data structure) 。 數(shù)據(jù)元素相互之間的關(guān)系稱為結(jié)構(gòu) ( structure) 。 數(shù)據(jù)結(jié)構(gòu)是相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合 。 數(shù)據(jù)結(jié)構(gòu)一般包括三個(gè)方面:數(shù)據(jù)的邏輯結(jié)構(gòu) 、 數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)以及對數(shù)據(jù)的基本操作 。 程序中的數(shù)據(jù)無論如何增長 , 總是位于計(jì)算機(jī)的內(nèi)存中 , 因此 , 必然會(huì)有地址 。 指針可以把地址作為一個(gè)完整數(shù)據(jù)值的速記符號(hào) 。 C語言中指針的重要用途: C語言程序設(shè)計(jì) 第 6章 指針 指針使程序的不同部分 ( 或函數(shù) ) 能共享數(shù)據(jù) 。 利用指針 , 能在程序執(zhí)行過程中預(yù)留新的內(nèi)存空間 。到現(xiàn)在為止 , 在程序中能使用的內(nèi)存是通過顯式定義分配給變量的內(nèi)存 。 在許多應(yīng)用中 , 如果程序能在運(yùn)行時(shí)獲得新的內(nèi)存空間 , 并讓指針指向這一內(nèi)存則更為方便 。 指針可用來記錄數(shù)據(jù)項(xiàng)之間的關(guān)系 。 在高級語言程序設(shè)計(jì)中應(yīng)用中 , 指針被廣泛用于構(gòu)造單個(gè)數(shù)據(jù)值之間的聯(lián)系 。 比如 , 程序員通常在第一個(gè)數(shù)據(jù)的內(nèi)部表示中包含指向下一個(gè)數(shù)據(jù)項(xiàng)的指針 , 來說明這兩個(gè)數(shù)據(jù)之間有概念上的順序關(guān)系 。 C語言程序設(shè)計(jì) 第 6章 指針 本章項(xiàng)目任務(wù) 利用指針,編程實(shí)現(xiàn)“ 學(xué)生信息管理系統(tǒng) ” 中學(xué)生成績的管理。 C語言程序設(shè)計(jì) 第 6章 指針 指針的基本操作與運(yùn)算 指針的基本運(yùn)算和操作 多級指針概念與地址關(guān)系 指針變量就是存放某個(gè)地址的變量,指針的值是地址。 程序中通常并不直接指出或使用內(nèi)存地址,因?yàn)榈刂返氖褂煤拖到y(tǒng)有關(guān),每次運(yùn)行程序時(shí)內(nèi)存地址都可能會(huì)發(fā)生改變。 常用指針來間接尋址內(nèi)存數(shù)據(jù)。 C語言程序設(shè)計(jì) 第 6章 指針 指針的基本運(yùn)算和操作 1.指針賦值 2.指針運(yùn)算 3.文件指針變量的使用 C語言程序設(shè)計(jì) 第 6章 指針 1.指針賦值 例如: int *p。 /*定義一個(gè)指向整型數(shù)據(jù)的指針變量 p*/ ?在程序中若想使用該指針變量,必須先對其賦值,使其指向某個(gè)地址。 方式 1: 指針變量名 =amp。變量名; 方式 2: 指針變量名 =另一已經(jīng)賦值的指針變量; 指針變量名 =指針常量; 指針賦值有以下方式: C語言程序設(shè)計(jì) 第 6章 指針 include void main( ) { unsigned c[10]={1,2,3,4,5,6,7,8,9,0},a=16。 unsigned *p=amp。a /*方式 1, *將變量 p說明為指針變量 */ unsigned *p1=c。 /*方式 2*/ printf(%u %u\n,a,amp。a)。 printf(%u %u\n,p,amp。p)。 printf(%u\n,c)。 printf(%u %u\n,p1,amp。p1)。 printf(“%d\n”,*p)。 /* 運(yùn)算符 *,表示取指針 p所指向的內(nèi)容 */ /* 通過 p間接存取變量 a的值 */ printf(%u\n,*p1)。 } 【 例 61】 閱讀并理解程序中變量、地址和指針之間的關(guān)系。 C語言程序設(shè)計(jì) 第 6章 指針 C語言程序設(shè)計(jì) 第 6章 指針 注意: ?使用沒有初始化的指針會(huì)產(chǎn)生不可預(yù)料后果??捎?“ 空 ” 值初始化避免這種現(xiàn)象。 ?將 0賦給指針變量,不能理解為將 0地址賦給指針變量,說明該指針變量目前不指向任何變量或地址。 例: int *p=NULL,*pm1,*pm2。 pm1=0。 pm2= 39。\039。 pm1 pm2 p 圖 63 “空指針值”的表示 C語言程序設(shè)計(jì) 第 6章 指針 ( 1) amp。 :取內(nèi)存地址,單目運(yùn)算符 ( 2) *:間接訪問內(nèi)存,單目運(yùn)算符 ( 3) +/:加法 /減法運(yùn)算符,雙目運(yùn)算符 ( 4) ++/:增 1/減 1運(yùn)算符,單目運(yùn)算符 ( 5)關(guān)系運(yùn)算符: ,=,=,==,!= 2.指針運(yùn)算( Pointer Arithmetic) ?指針值的集合是地址空間編碼。 在這個(gè)集合上可進(jìn)行操作運(yùn)算,所用的指針運(yùn)算符有: C語言程序設(shè)計(jì) 第 6章 指針 ?指針移動(dòng)運(yùn)算 通過對指針變量進(jìn)行加、減運(yùn)算實(shí)現(xiàn)對指針變量的重新定值,使指針指向不同的存儲(chǔ)單元。指針移動(dòng)運(yùn)算的限制條件為: ① 指針只能在相同數(shù)據(jù)類型的連續(xù)空間內(nèi)移動(dòng); ② 指針移動(dòng)的內(nèi)存單位是基數(shù)據(jù)類型的邏輯單位,而不是字節(jié)單位。 主要運(yùn)算形式有: ①指針變量 +/整型表達(dá)式 ②整型表達(dá)式 +指針變量 ③ ++/指針變量或指針變量 ++/ ④ 指針變量 1指針變量 2 C語言程序設(shè)計(jì) 第 6章 指針 例:假設(shè)指針變量 p、 q是同類型指針,且指向同一數(shù)據(jù)集合(數(shù)組), n是整型常量或變量,則指針變量p、 q支持如下五種算術(shù)運(yùn)算: ①后置自加運(yùn)算: p++; /*p作為當(dāng)前操作數(shù),然后后移一個(gè)元素 */ ② 后置自減運(yùn)算: p; /*p作為當(dāng)前操作數(shù),然后前移一個(gè)元素 */ ③ 前置自加運(yùn)算: ++p; /*p后移一個(gè)元素,然后作為當(dāng)前操作數(shù) */ ④ 前置自減運(yùn)算: p; /*p前移一個(gè)元素,然后作為當(dāng)前操作數(shù) */ ⑤ 加整型量: p+n; /*取得 p之后第 n個(gè)元素的地址 */ ⑥ 減整型量: pn; /*取得 p之前第 n個(gè)元素的地址 */ ⑦ 同類指針相減: pq; /*表示 p和 q兩者之間的元素個(gè)數(shù) */ C語言程序設(shè)計(jì) 第 6章 指針 圖 64 指針變量的移動(dòng)運(yùn)算 數(shù)組 指針 C語言程序設(shè)計(jì) 第 6章 指針 【 例 62】 閱讀程序。注意指針變量的移動(dòng)。 include void main( ) { int a[10]={54,65,8,2,3,56,8,21,57,98},*p, i。 p=a。 for(i=0。i10。i++) printf(%4d, *p++ )。 printf(\n)。 } C語言程序設(shè)計(jì) 第 6章 指針 如果 p指向 a數(shù)組中第 i個(gè)元素,則: ?*p相當(dāng)于 *(p)或 a[i],先對 p進(jìn)行“ *”運(yùn)算,再使 p自減。 ?*p相當(dāng)于 *(p) 或 a[i],先對 p自減,再作 *運(yùn)算。 ?*++p相當(dāng)于 *(++p)或 a[++i],先對 p自加,再作 *運(yùn)算。 ?*p++相當(dāng)于 *(p++)或 a[i++],先對 p進(jìn)行“ *”運(yùn)算,再使 p自加。 ?(*p),先取 *p的值,再將此值自減。 ?(*p),先將 *p的值自減,再取 *p的值。 ?(*p)++,先取 *p的值,再將此值自加。 ?++(*p),先將 *p的值自加,再取 *p的值。 C語言程序設(shè)計(jì) 第 6章 指針 ? 關(guān)系運(yùn)算 只有當(dāng)兩個(gè)指針變量指向同一個(gè)連續(xù)的存儲(chǔ)空間時(shí),才能進(jìn)行關(guān)系運(yùn)算。 ? 判斷兩個(gè)指針是否指向同一個(gè)存儲(chǔ)單元: p==q; /*當(dāng) p和 q指向同一元素時(shí),表達(dá)式的值為 1;反之為 0*/ p!=q; /*當(dāng) p和 q不指向同一元素時(shí),表達(dá)式的值為 1;反之為 0*/ C語言程序設(shè)計(jì) 第 6章 指針 ?判斷不同指針?biāo)赶虻拇鎯?chǔ)單元間的位置關(guān)系: pq /*當(dāng) p所指的元素在 q所指的元素之前時(shí),表達(dá)式的值 為 1;反之為 0。 */ pq /*當(dāng) p所指的元素在 q所指的元素之后時(shí),表達(dá)式的值 為 1;反之為 0。 */ C語言程序設(shè)計(jì) 第 6章 指針 【 例 63】 利用指針的移動(dòng)和比較運(yùn)算,求數(shù)組 int a[10]的 10個(gè)元素之和。 算法思想: 設(shè)置指針 p和 q分別指向 數(shù)組的首和尾 ;通過首指針向后或尾指針向前移動(dòng),直到首、尾指針相等,即遍歷了整個(gè)數(shù)組,從而實(shí)現(xiàn)對數(shù)組的操作。 C語言程序設(shè)計(jì) 第 6章 指針 include void main() { int s=0, a[10], *p, *q。 for( p=a+9, q=a。 p=q。 p ) scanf(%d,p)。 q=a+9。 p=a。 while( p=q ) { s+=*p。 ++p。 } printf(sum=%d\n,s)。 } C語言程序設(shè)計(jì) 第 6章 指針 【 例 64】 利用指針移動(dòng)和比較運(yùn)算,編寫程序?qū)⒁粋€(gè)字符串逆置。要求在同一個(gè)數(shù)組中實(shí)現(xiàn)字符串逆置。 算法思想: 設(shè)置 s和 p兩個(gè)指針分別指向 串首和串尾 (不是數(shù)組的首和尾),交換它們對應(yīng)的字符; 然后 s和 p分別向字符串中間移動(dòng),并同時(shí)交換對應(yīng)位置的字符; 直到 s與 p指向相同位置或 s指向 p后的位置。 include include void main( ) { char str[50],*p,*s,c。 printf(Enter string:)。 gets(str)。 p=s=str。 /*指針 p和 s同時(shí)指向 str */ while(*p) p++。 /*找到串結(jié)束標(biāo)記 39。\039。 */ p。 /*指針回退一個(gè)字符,指向字符串中的最后一個(gè)字符 */ /*以上語句使 s和 p分別指向串首和串尾 */ while(sp) /*指針比較, s在 p之前時(shí),進(jìn)行循環(huán)交換 */ { c=*s。 /*交換兩個(gè)指針?biāo)赶虻淖址? */ *s++=*p。 /*串前面的指針 s向后( +1)移動(dòng) */ *p= c。 /*串后面的指針 p向前( 1)移動(dòng) */ } puts(str)。 } C語言程序設(shè)計(jì) 第 6章 指針 3.文件指針變量的使用(選講) ?使用文件指針來訪問數(shù)據(jù)文件。 ?指向文件的指針使用 FILE來進(jìn)行聲明定義。 例: FILE *sensor; sensor=fopen(“”,“r”)。 /*文件指針變量賦值 */ fscanf(sensor,“%f %f”,amp。t,amp。motion)。 /*使用該文件指針 */ C語言程序設(shè)計(jì) 第 6章 指針 【 例 65】 閱讀并理解程序中的文件指針,深入學(xué) 習(xí)相應(yīng)的文件讀寫函數(shù)等。 include include void main( ) { FILE *fp。 /*建立文件指針 fp*/ int i, k, n。 if ( (fp=fopen(,w+)) ==NULL) { printf(Open error\n)。 exit(0)。 } for (i=1。i6。i++) fprintf(fp, “%d \n,i)。 r
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號(hào)-1