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

正文內(nèi)容

第十章指針101指針的概念102變量的指針和指向變量的指(編輯修改稿)

2024-08-17 02:49 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 n( ) { int i, max, a[5], *p。 p=a。 for(i=0。 i5。 i++) scanf(%d, p+i)。 /*p未變 */ max=*p。 for(i=1。 i5。 i++) if(*(p+i)max) max=*(p+i)。 printf(\nmax=%d\n, max)。 } 注意: 循環(huán)中 p始終保持指向 a[0]不變。 a[0] a[1] a[2] a[3] a[4] p 2030 2032 2034 2036 2038 P+1: P+2: P+3: P+4: C 程序設(shè)計(jì) 第十章 指 針 36 說(shuō)明: 1) 表達(dá)式 p+i的值為: p+i*sizeof(int) 2) p+i的含義: 若: p=amp。a[0]且保持不變 則有: p+i ? amp。a[i],其中 i為元素位移量; 及: *(p+i) ? a[i] 3) 若 p=amp。a[0]且保持不變, 則以下四種形式等價(jià): *(p+i) ? *(a+i) ? a[i] ? p[i] 數(shù)組名 a是指針常量, a+i運(yùn)算規(guī)則同 p+i,因而 數(shù)組名和指針變量此時(shí)可通用,但本質(zhì)上兩者不同。 C 程序設(shè)計(jì) 第十章 指 針 37 4) 編譯時(shí)對(duì)下標(biāo)引用形式 a[i]將處理成 *(a+i);同 樣對(duì) p[i]也處理成 *(p+i)。 5) 若 p=amp。a[0],則 p++指向 a[1]。 而 a++是錯(cuò)誤的,因地址常量不能自加。 6) 也可用指針控制循環(huán) /*a+4: 2038*/ for(i=0, p=amp。a[0]。 (p+i)=(a+4)。 i++) if(*(p+i)max) max=*(p+i)。 該循環(huán)過(guò)程中 p始終指向 a[0],表達(dá)式 p+i的值 隨 i的變化分別表示各元素 a[i]的地址。 C 程序設(shè)計(jì) 第十章 指 針 38 【 例 】 利用指針訪(fǎng)問(wèn)動(dòng)態(tài)存儲(chǔ)區(qū)域,實(shí)現(xiàn) 10個(gè)數(shù)求 和運(yùn)算。 相關(guān)函數(shù): (參看教材 P275) 內(nèi)存分配函數(shù)原形: void *malloc(unsigned size)。 功能: 在內(nèi)存申請(qǐng)一塊長(zhǎng)度為 size個(gè)字節(jié)的空間; 若申請(qǐng)成功,該函數(shù)返回指向存儲(chǔ)塊起始地 址的指針,該指針類(lèi)型為 void *;否則返回 空指針 (NULL)。 內(nèi)存釋放函數(shù)原形: void free(void *p)。 功能: 釋放 p所指向的內(nèi)存塊。 C 程序設(shè)計(jì) 第十章 指 針 39 define N 10 p main( ) { int i, sum=0, *p。 p=(int *)malloc(sizeof(int)*N)。 /*申請(qǐng) */ for(i=0。 iN。 i++) *(p+i)=i+1。 /*向動(dòng)態(tài)存儲(chǔ)區(qū)存數(shù) */ for(i=0。 iN。 i++) sum=sum+*(p+i)。 /*累加求和 ,p未變 */ for(i=0。 iN。 i++) printf(%d%c, p[i], (i==N1)? 39。=39。: 39。+39。)。 printf(%d\n, sum)。 free(p)。 /*釋放 */ } 1 2 3 4 5 6 7 8 9 10 4500 4500 4502 ┇ YS C 程序設(shè)計(jì) 第十章 指 針 40 2. 數(shù)組的指針作為函數(shù)參數(shù) 數(shù)組名 形參數(shù)組 已指向數(shù)組的 指針變量 形參數(shù)組 數(shù)組名 指針變量 已指向數(shù)組的 指針變量 指針變量 數(shù)組指針 數(shù)組指針 數(shù)組指針 數(shù)組指針 與主調(diào)函數(shù) 中的數(shù)組共用存儲(chǔ)單元。 為形參指針變 量動(dòng)態(tài)分配、 釋放存儲(chǔ)單元, 接受實(shí)參值。 實(shí)參 形參 C 程序設(shè)計(jì) 第十章 指 針 41 【 例 】 定義函數(shù),用指針作為函數(shù)參數(shù),實(shí)現(xiàn)一維數(shù) 組的倒置存儲(chǔ)和輸出。 方法 1: 實(shí)參是已指向數(shù)組的指針變量,形參為數(shù)組; define N 5 main( ) { void turn(float x[ ])。 float a[N], *p。 int i。 for(i=0。 iN。 i++) scanf(%f, a+i)。 /*地址法表示元素地址 */ p=a。 turn(p)。 /*使 p指向 a[0]*/ for( 。 pa+N。 p++) /*循環(huán)中 p順序指向各元素 */ printf(%, *p)。 } C 程序設(shè)計(jì) 第十章 指 針 42 main( ) { …。 float a[N]。 p=a。 turn(p)。 …。 } void turn(float x[ ]) { float *p1,*p2, t。 p1=x。 p2=x+(N1)。 for( 。 p1p2。 p1++, p2) /*指針量關(guān)系運(yùn)算 */ { t=*p1。 *p1=*p2。 *p2=t。 } return。 } 1 2 3 4 5 a[0] a[1] a[2] a[3] a[4] x[0] x[1] x[2] x[3] x[4] amp。a[0] 實(shí)參 p 形參 x amp。x[0] 局部 t 局部 p1 amp。x[4] 局部 p2 1 5 1 YS C 程序設(shè)計(jì) 第十章 指 針 43 方法 2: 實(shí)參是已指向數(shù)組的指針變量,形參也為指 針變量; main( ) { …。 float a[N]。 p=a。 turn(p)。 …。 } void turn(float *p1) { float *p2, t。 p2=p1+(N1)。 for( 。 p1p2。 p1++, p2) /*p1自加 1增量為 4*/ { t=*p1。 *p1=*p2。 *p2=t。 } return。 } amp。a[0] 實(shí)參 p amp。a[0] amp。a[4] 形參 p1 局部 p2 1 2 3 4 5 a[0] a[1] a[2] a[3] a[4] C 程序設(shè)計(jì) 第十章 指 針 44 方法 3: 實(shí)參是已指向數(shù)組的指針變量,形參也為指 針變量, 指針變量帶下標(biāo)使用 ; main( ) { …。 float a[N]。 p=a。 turn(p)。 …。 } void turn(float *p1) { float t。 int i, j。 for(i=0, j=N1。 ij。 i++, j) /*p1保持不變 */ { t=p1[i]。 p1[i]=p1[j]。 p1[j]=t。 } return。 /*p1[i]?*(p1+i)*/ } amp。a[0] 實(shí)參 p amp。a[0] 形參 p1 1 2 3 4 5 a[0] a[1] a[2] a[3] a[4] C 程序設(shè)計(jì) 第十章 指 針 45 關(guān)于形參數(shù)組的說(shuō)明: 事實(shí)上, C編譯系統(tǒng)是將形參數(shù)組作為指針變 量來(lái)處理的。 證明: main() { void parray(float a[ ])。 float a[5]={1,2,3,4,5}, sumf(float *)。 printf(\n\tA length: %d\n, sizeof(a))。 parray(a)。 /*↑ 數(shù)組 a的存儲(chǔ)長(zhǎng) */ printf(\n\tSUM: %, sumf(a))。 } ┇ C 程序設(shè)計(jì) 第十章 指 針 46 main( ) { ┅ parray(a)。 ┅ sumf(a) ┄ } void parray(float x[5]) /*void parray(float *x) */ { int i。 for(i=0。i5。i++) printf(%, x[i])。 printf(\n\tX length: %d, sizeof(x) )。 return。 /*↑ 結(jié)果為 2*/ } float sumf(float *x) { float sum=0。 int i。 for(i=0。 i5。 i++) sum+=x[i]。 return(sum)。 } YS C 程序設(shè)計(jì) 第十章 指 針 47 3. 指針和二維數(shù)組 1) 用指向變量的指針變量訪(fǎng)問(wèn)二維數(shù)組 若有定義: define N 3 define N 4 int i, j, a[N][M], *p。 且 p=amp。a[0][0]。 利用 p訪(fǎng)問(wèn)二維數(shù)組的方法如下: ? for(i=0。 iN*M。 i++, p++) /*p值不斷改變 */ printf(%4d, *p)。 按二維數(shù)組的存儲(chǔ)結(jié)構(gòu), p 順序指向各元素 。 ? for(i=0。 iN。 i++) /*p值固定為 amp。a[0][0]*/ for(j=0。 jM。 j++) printf(%4d, *(p+i*4+j))。 /*4為列長(zhǎng) */ 其中 p+i*4+j: i 行 j 列元素地址。 C 程序設(shè)計(jì) 第十章 指 針 48 2022 2022 2022 2022 2022 2022 2022 2022 2022 2022 2020 2022 a[0][0] a[0][1] a[0][2] a[0][3] a[1][0] a[1][1] a[1][2] a[1][3] a[2][0] a[2][1] a[2][2] a[2][3] 0行 1行 2行 amp。a[0][0] p 方法 1圖示 : *(p++) 87 73 91 76 82 89 67 73 93 70 80 82 P不斷自加 1,按二維數(shù)組存儲(chǔ)結(jié)構(gòu)順序指向各元素。 C 程序設(shè)計(jì) 第十章 指 針 49 方法 2圖示 : i行 j列元素地址 —— p+(i*列長(zhǎng) +j) 2022 a[0][0] 2022 a[0][1] 2022 a[0][2] 2022 a[0][3] 2022 a[1][0] 2022 a[1][1] 2022 a[1][2] 2022 a[1][3] 2022 a[2][0] 2022 a[2][1] 2020 a[2][2] 2022 a[2][3] 2022 2022 2022 amp。a[0][0] p 元素 a[2][1]地址: p+(2*4+1) =p+9 (9為相對(duì)首元素的位移量 ) =p+sizeof(int)*9 =
點(diǎn)擊復(fù)制文檔內(nèi)容
數(shù)學(xué)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1