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

正文內(nèi)容

c語言程序設(shè)計(下)ppt-展示頁

2024-12-16 21:49本頁面
  

【正文】 )。 */ scanf(%d, amp。 *(a+5)=50。 27 指針 指針與數(shù)組 指針與一維數(shù)組 1.通過一維數(shù)組名所代表的地址存取數(shù)組元素 . 假設(shè)已定義一維數(shù)組 a,由上述可知 a+i是元素 a[i]的地址,根據(jù)指針運算符“ *”的運算規(guī)則知 *(a+i) 與元素 a[i]等價。 或 a++。數(shù)組首地址的值在C語言中是一個地址常量,是不能改變的。例如有以下定義語句: int a[10], *p; 則語句 p=a;和 p=amp。 } 程序運行結(jié)果 : x=10 26 指針 指針與數(shù)組 指針與一維數(shù)組 一個數(shù)組的元素在內(nèi)存中是連續(xù)存放的,數(shù)組第一個元素的地址稱數(shù)組的首地址。p3。p2。p1。x。 25 指針 指針變量的定義與引用 多級指針的概念 【 例 64】 運行下面的程序 include void main( ) {int *p1, **p2, ***p3, ****p4, x=10。 24 指針 指針變量的定義與引用 多級指針的概念 按照上述二級指針的思路,顯然可以推廣到三級指針、四級指針 …… 。 } 由于在調(diào)用函數(shù)時,實際參數(shù)是指針變量,形式參數(shù)也是指針變量,實參與形參相結(jié)合,傳值調(diào)用將指針變量傳遞給形式參數(shù) pt1和 pt2。*pt2=t。 if (*pt1*pt2) {t=*pt1。 return 0。 chang(p1,p2)。 p2=amp。 p1=amp。a,amp。 /* 函數(shù)聲明 */ int *p1,*p2,a,b,*t。 22 指針 指針變量的定義與引用 指針作為函數(shù)參數(shù) 【 例 63】 利用指針變量作為函數(shù)的參數(shù),用函數(shù)的方法再次實現(xiàn)上述功能。使用指針類型做函數(shù)的參數(shù),實際向函數(shù)傳遞的是變量的地址。問題是:指針變量 p沒有存放普通變量的地址,因此也是錯誤的(運行時有警告)。 可實現(xiàn)從大到小輸出。}將會怎樣? 【 分析 】 第一種情況是:在 i1i2的情況下,利用臨時指針變量 p交換指針變量 p p2存放的地址值,而 i i2的值沒有改變,因此題目的要求沒有實現(xiàn)(如圖 65所示)。 *p1=*p2。 p2=p。 20 指針 指針變量的定義與引用 指針的運算及引用 【 思考 】 如果將變量定義改為 int i1, i2, *p1, *p2, *p; 交換 ii2值的語句改為: if(i1i2){p=p1。 第二種情況是:在 i1i2的情況下,利用三個指針變量的指向操作交換 i i2的值。但如果同時將輸出語句改為: printf(max=%d,min=%d\n,*p1, *p2)。 *p2=*p。}或者 if(i1i2){*p=*p1。 p1=p2。} /* 利用指針變量的指向操作交換 i i2的值 */ printf(i1=%d,i2=%d\n,i1, i2)。*p1=*p2。 scanf(%d%d,p1,p2)。i2。i1。程序如下: 18 指針 指針變量的定義與引用 指針的運算及引用 include void main( ) {int i1, i2, *p1, *p2, t。p=13ff78 a=5 a=6 17 指針 指針變量的定義與引用 指針的運算及引用 【 例 62】 輸入兩個整數(shù) i1和 i2,利用指針將大數(shù)存放到 i1中,小數(shù)存放到 i2中,最后按 i i2的順序輸出。 /* 使指針變量 p所指向的存儲單元的值自增,相當(dāng)于 a++; */ printf(a=%d\n,a)。 /* 把 5賦給 p所指向的存儲單元,相當(dāng)于 a=5; */ printf(a=%d\n,a)。p)。 /* 輸出指針變量 p存儲的變量 a的地址 */ printf(amp。 /* 對指針變量 p所指向的變量 a的地址讀入整數(shù) */ printf(a=%d\n,a)。 /* 打印指針變量 p所指向的變量 a的值 10 */ printf(Enter a: )。a。 (2) 指針變量的引用 知道了指針變量的作用以及相關(guān)的運算符以后,我們就可以引用指針變量了。a) ==a amp。根據(jù) *運算符的作用, *運算符和取地址運算符 amp。a; printf( %d,*p); *p的值為 5與 a等價。 15 指針 指針變量的定義與引用 指針的運算及引用 (1) 指向運算符 * *運算符作用在指針(地址)上,代表該指針?biāo)赶虻拇鎯卧捌渲担?,實現(xiàn)間接訪問,因此又叫 “ 間接訪問運算符 ” 。 (3) 通過標(biāo)準(zhǔn)函數(shù)獲得地址值。k);與 scanf( %d,q);作用相同。如: int k=10, *p, *q; q=amp。 14 指針 指針變量的定義與引用 指針的運算及引用 在函數(shù)的執(zhí)行部分給指針變量賦地址值有以下幾種情況。 13 指針 指針變量的定義與引用 指針變量的賦值 3.通過其它指針變量賦值 可以通過賦值運算符,把一個指針變量的地址值賦給另一個指針變量,這樣兩個指針變量均指向同一地址。f。 則把變量 f的地址賦值給指針變量 p,此語句相當(dāng)于 float f, *p??梢栽诙x變量時給指針變量賦初值,如 float f, *p=amp?!笨砂岩粋€變量的地址賦給指針變量。”的右邊,用于求出運算對象的地址?!辟x值 地址運算符“ amp。 11 指針 指針變量的定義與引用 指針變量的定義與初始化 指針變量的一般定義形式為: 類型名 *標(biāo)識符; 其中“標(biāo)識符”是指針變量名,標(biāo)識符前加“ *”號表示該變量是指針變量,用于存放地址,“類型名”表示該指針變量所指向變量的類型。通過變量名或其地址(如 a或 amp。因此,指針就是地址。指針變量也需要存儲單元(存放地址值的整數(shù)),它本身也有地址。 9 指針 指針的基本概念 指針的概念 根據(jù)內(nèi)存單元的編號或地址就可以找到所需的內(nèi)存單元,通常把這個地址稱為指針。值得注意的是,由于常量和表達式?jīng)]有用戶可操作的內(nèi)存地址,因此 amp。b和 amp。 由 amp。b,amp。 scanf( %d%f%c,amp。 float b。獲取。 int y。內(nèi)存單元的編號也叫做地址。一般把存儲器中的一個字節(jié)稱為一個內(nèi)存單元,為了正確地訪問這些內(nèi)存單元,必須為每個內(nèi)存單元編號。 6 指針 指針的基本概念 指針的概念 “程序存儲”就是在程序運行之前將程序和數(shù)據(jù)存入計算機內(nèi)存。 能動態(tài)的分配內(nèi)存,方便的使用字符串,有效的而方便的使用數(shù)組,在調(diào)用函數(shù)時能獲得一個以上的結(jié)果,能直接處理內(nèi)存單元地址等。C語言程序設(shè)計 (下 ) 第六章 指針 3 4 指針的基本概念 指針變量的定義與引用 指針與數(shù)組 5 指針 為什么要學(xué)習(xí)指針? 指針是 C語言一個重要的概念也是 C語言的重要特色。正確靈活的運用指針可以有效地表示負(fù)責(zé)的數(shù)據(jù)結(jié)構(gòu)。 而這些是設(shè)計系統(tǒng)軟件非常必要的,掌握指針可以有效的使程序簡潔、緊湊、高效。所以在計算機中,所有的數(shù)據(jù)都是存放在存儲器中的。根據(jù)一個內(nèi)存單元的編號即可準(zhǔn)確地找到該內(nèi)存單元。 7 指針 指針的基本概念 指針的概念 main() {float x。 … } 變量的兩個物理意義 2022 2022 2022 2022 2022 2022 … x y 變量的內(nèi)容 變量的地址 8 指針 指針的基本概念 指針的概念 變量的存儲單元是在編譯時(對靜態(tài)存儲變量)或程序運行時(對動態(tài)存儲變量)分配的,因此變量的地址不能人為確定,而要通過取地址運算符 amp。例如在如下的程序段中: int a。 char c。a,amp。c) 。a、 amp。c分別得到變量 a、 b和 c的內(nèi)存地址。不能作用到常量或表達式上。 在 C語言中,專門存放變量(或其它程序?qū)嶓w)地址的變量是指針變量。例如讓變量 p存放整型變量 a的地址(如圖所示),這樣,由變量 p的值(地址,圖中為1012)就可以找到變量 a,因此稱變量 p指向變量 a,變量 p就是指針變量,它存放的地址就稱為“指針”。 10 指針 指針的基本概念 指針的概念 有了指針變量以后,對一般變量的訪問即可以通過變量名進行,也可以通過指針變量進行。a)訪問變量的方式叫直接訪問方式; 通過指針變量(如 p)訪問它指向的變量(如 a)的方式叫間接訪問方式。 12 指針 指針變量的定義與引用 指針變量的賦值 1.通過地址運算 “ amp?!笔菃文窟\算符,運算對象放在地址運算符“ amp。通過地址運算“ amp。 2.指針變量的初始化 與動態(tài)變量的初值一樣,在定義了一個(動態(tài)的)指針變量之后,其初值也是一個不確定的值。f。 p=amp。 這兩條語句。 4.用 NULL給指針變量賦空值 除了給指針變量賦地址值外,還可以給指針變量賦空值,如 p=NULL。 (1) 賦給同類型普通變量求地址運算得到的地址值。k; 這時 scanf( %d,amp。 (2) 通過已有地址值的指針變量賦值。 (4) 給指針變量賦“空”值,如: p=NULL; 這樣做的目的是:讓指針變量存有確定的地址值又不指向任何變量(類似于給數(shù)值型變量賦初值 0)。如: int a=5, *p; p=amp。 *運算符為單目運算符,與其他的單目運算符具有相同的優(yōu)先級和結(jié)合性(右結(jié)合性)。 互逆 : *( amp。( *p) ==p 注意,在定義指針變量時,“ *”表示其后是指針變量;在執(zhí)行部分的表達式中,“ *”是指向運算符。 16 指針 指針變量的定義與引用 指針的運算及引用 【 例 61】 請理解下列程序中各語句的含義: include void main( ) {int a=10,*p=amp。 printf(*p=%d\n,*p)。 scanf(%d,p)。 printf(p=%x\n,p)。p=%x\n,amp。 /* 輸出指針變量 p自身的地址 */ *p=5。 (*p)++。 } 程序運行結(jié)果 : *p=10 Enter a:15 a=15 p=13ff7c amp。 按題意,定義兩個指針變量 p p2,將 i i2的地址分別存入 pp2,當(dāng) i1i2時利用指針變量 p p2交換 i i2的值然后輸出。 p1=amp。 p2=amp。 printf(Enter two numbers:\n)。 /* 利用指針變量輸入 i i2的值 */ if(i1i2) {t=*p1。*p2=t。 } Enter two numbers: 5 10 程序運行結(jié)果 : i1=10,i2=5 19 指針 指針變量的定義與引用 指針的運算及引用 【 思考 】 如果將變量定義改為 int i1, i2, *p1, *p2, *p; 交換 ii2值的語句改為: if(i1i2){p=p1。 p2=p。 *p1=*p2。}將會怎樣? 【 分析 】 第一種情況是:在 i1i2的情況下,利用臨時指針變量 p交換指針變量 p p2存放的地址值,而 i i2的值沒有改變,因此題目的要求沒有實現(xiàn)(如圖 65所示)。 可實現(xiàn)從大到小輸出。問題是:指針變量 p沒有存放普通變量的地址,因此也是錯誤的(運行時有警告)。 p1=p2。}或者 if(i1i2){*p=*p1。 *p2=*p。但如果同時將輸出語句改為: printf(max=%d,min=%d\n,*p1, *p2)。 第二種情況是:在 i1i2的情況下,利用三個指針變量的指向操作交換 i i2的值。 21 指針 指針變量的定義與引用 指針作為函數(shù)參數(shù) 函數(shù)的參數(shù)可以是我們在前面學(xué)過的簡單數(shù)據(jù)類型,也可以是指針類型。由于函數(shù)中獲得了所傳遞變量的地址,在該地址空間的數(shù)據(jù)當(dāng)函數(shù)調(diào)用結(jié)束后被物理地保留下來。 include void main( ) {void chang( )。 scanf(%d,%d,amp。b)。a。b。 /* 調(diào)用函數(shù) */ printf(%d,%d\n,*p
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1