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

正文內(nèi)容

大學(xué)計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)c語(yǔ)言3ppt-在線瀏覽

2025-03-09 03:47本頁(yè)面
  

【正文】 整數(shù)表達(dá)式 – 兩個(gè)相容的指針值相減。 設(shè)指針 p指向數(shù)組變量 a的一個(gè)成分,把指針 p與一個(gè)整數(shù) k相減,得到的結(jié)果值仍然是一個(gè)指針值; 該值指向的是“數(shù)組 a從 p原來(lái)所指成分開始,向數(shù)組首部移動(dòng) k個(gè)成分后的成分”。 p=amp。 則 p3 指向的實(shí)際地址是 amp。 與前文一樣“ p”表示“ p=p1”. ? 兩個(gè)指針值之間相減 兩個(gè)指針?biāo)傅膶?duì)象是同一個(gè)類型,則可以進(jìn)行相減運(yùn)算,所得結(jié)果是整型值,即兩指針值間的距離。 p=amp。 q=amp。 則 pq得 5 ; 而 qp得 5 。 包括: – 判斷兩個(gè)指針值是否相等或不相等 ==、 !=; – 比較兩個(gè)指針值的大小關(guān)系 、 = 、 、 = 例子 – pxpy 判斷 px所指向的存儲(chǔ)單元地址是否小 于 py所指向的存儲(chǔ)單元地址。 一定要注意,參與關(guān)系運(yùn)算的指針值是否是兼容類型的,如果 p指向一個(gè) int類型變量,而 q指向一個(gè) float 類型變量,進(jìn)行 p與 q的比較是錯(cuò)誤的。 include void main( ){ char str[255] , *p。 scanf(%s,str)。 while( *p!=39。 ) p++ 。 pstr)。 指針與數(shù)組 ? 密切的關(guān)系 – 數(shù)組名是數(shù)組的首地址,即 a[0]的地址; – 指針值也是一個(gè)地址如果一個(gè)指針 p指向數(shù)組 a的首地址即指向 a[0],則 p與 a表示的是同一個(gè)對(duì)象。 ? 可以認(rèn)為 數(shù)組名是常量指針 。 用指針標(biāo)識(shí)數(shù)組 ? 例如 int a[5]。 // 也可以使用 iptr=amp??梢园堰@個(gè)指針值送入指針變量中。 int i , *p。i5。 scanf ( %d,amp。 } for(i=0。i++ ) printf(%2d,a[i])。 for(i=0。i++ ) printf(%2d,*(a+i))。 for(p=a。p++ ) printf(%2d,*p)。 } 假設(shè)分別輸入 5 在輸出階段 : 執(zhí)行第一個(gè) for語(yǔ)句輸出結(jié)果: 執(zhí)行第二個(gè) for語(yǔ)句輸出結(jié)果: 執(zhí)行第三個(gè) for語(yǔ)句輸出結(jié)果: a[0]= 1 a[1]= 2 a[2]= 3 a[3]= 4 a[4]= 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 運(yùn)行結(jié)果演示 167。所以 p是 n個(gè)元素的指針數(shù)組,數(shù)組成分是指向 T類型變量的指針。這個(gè)聲明形式,聲明了一個(gè)指針數(shù)組 p ,如圖所示。數(shù)組中每個(gè)元素都是指針。 int * p[5]。 int * n[5] , i 。 for( i=0。 i++) n[i]=amp。 for( i=0。 i++,p++) printf(“%4d”,**p); } 程序運(yùn)行結(jié)果將輸出: 23 24 25 26 27 “指向指針的指針變量 p” “指針數(shù)組 n”與“數(shù)組 a” 關(guān)系圖 n a p: amp。a[0] 23 amp。a[2] 25 amp。a[4] 27 運(yùn)行結(jié)果演示 例 把若干給定的字符串按字母順序排序并輸出 void sort_string(char *arr_str[ ],int n)。 int str_cmp( char *str1 , char *str2 ); char *name[ ]={basic,programming“ ,great wall,language,puter}。 out_string(name,5)。 程序聲明部分產(chǎn)生如下圖的數(shù)據(jù)結(jié)構(gòu): 經(jīng)過(guò) sort_string排序后數(shù)據(jù)結(jié)構(gòu)如下 運(yùn)行結(jié)束產(chǎn)生如下輸出: basic puter great wall language programming 常量字符串保存在內(nèi)存的常量區(qū) void sort_string(char *arr_str[],int n){ char *temp。 for ( i=0。 i++){ k = i。 jn。 temp= arr_str[i]。 arr_str[k]=temp。 for ( j=0。j++) printf( %s\n , arr_str[j] )。 else if ( *str1 *str2 ) return 1。amp。 // 注意“ ++” if ( *str1==?\0? amp。 *str2==?\0?) // 兩個(gè)串 長(zhǎng)度相同 return 0。\039。 else return 1。 指針與字符串 ? 字符串實(shí)質(zhì)上是常量字符數(shù)組,同時(shí)還可以使用字符數(shù)組變量保存字符串。 ? 顯然指針與字符串有著密切的關(guān)系。該字符串既可能是字符數(shù)組,也可能是字符串常量。 char string[ ] = “I am a student”。 ? 設(shè)變量從 A000開始分配內(nèi)存空間,常量從AA00開始分配內(nèi)存空間,這個(gè)聲明產(chǎn)生下圖的內(nèi)存分配結(jié)果。 為了保存字符串常量 “ I love china” 編譯系統(tǒng)在常量區(qū)給它開辟存儲(chǔ)空間,這塊存儲(chǔ)空間的結(jié)構(gòu)與字符數(shù)組相同;并初始化字符類型指針變量 sp,使它指向字符串“ I love china”。目前 sp指向它,當(dāng)然也可以用其它指針變量指向它,sp也可以用于其它用途。 sp = string; 使得 sv指向字符串 “ I love china” 而 sp又去指向另一個(gè)字符串 。例 printf(“%s\n”,sp)。 地址 變量區(qū) 地址 常量區(qū) A016 \0 A015 t A014 n A013 e A012 d A011 u A010 t A00F s AA0F A00E AA0E A00D a AA0D A00C AA0C \0 A00B m AA0B a A00A a AA0A n A009 AA09 i string: A008 I AA08 h 無(wú)值 AA07 c AA06 AA05 e sv: A004 AA04 v 常量區(qū)地址 AA00 指向常量 AA03 o AA02 l AA01 sp: A000 AA00 I AA00 A008 【 例 】 編函數(shù)把給定字符串復(fù)制到另一個(gè)字符串。 //計(jì)數(shù)器 for( i=0。 str1++,i++) str2[i]=*str1。 int str_cmp( char *str1 , char *str2 ){ do { if ( *str1 *str2 ) // 比較當(dāng)前字符 return 1。 // str2長(zhǎng)或 str1當(dāng)前字母小于 str2 }while ( *(str1++)!=?\0?amp。 *(str2++)!=?\0?); // 注意此處 “ ++”運(yùn)算的作用 if ( *str1==39。 amp。 *str2==39。) return 0。 –舉例如下,請(qǐng)從中深刻體會(huì)字符串指針和字符數(shù)組的各種用法。 // 正確,初始化數(shù)組 str ⑵ char str0[20] , str[20]=“I am a teacher”。 // 錯(cuò)誤,給指針常量賦值,數(shù)組不能整體賦值 ⑶ char str[20]。 // 錯(cuò)誤,給指針常量賦值,數(shù)組不能整體賦值 ⑷ char str[20]。 // 錯(cuò)誤,給指針常量賦值; // “str[ ]”出現(xiàn)在“ =”左端,意義不明確。 str=“I am a teacher”。 scanf ( “%s”,str)。 scanf ( “%s”,str)。 str=str0。 // 正確,輸入字符串?dāng)?shù)據(jù)從 str0[0]開始存放 ⑼ char *str , str0[20]。 scanf ( “%s”,str)。 printf ( “%s”,str)。 printf ( “%s”, str)。 str = str+5。 // 正確,打?。?a teacher ⒀ char *str= “x=%d y=%f\n”。 // 正確,相當(dāng)于 : printf (“x=%d y=%f\n” , x , y )。 指向指針的指針 ? 如果一個(gè)指針變量指向的變量仍然是一個(gè)指針變量,就構(gòu)成指向指針變量的指針變量,簡(jiǎn)稱指向指針的指針。 指向指針變量的指針變量 p 指針變量 s int類型變量 v p: 300 P的聲明形式是: 類型符 **p 如下程序片段構(gòu)造下圖結(jié)構(gòu)。 p = amp。 s = amp。 v=300。 使用 p訪問(wèn) v內(nèi)容的形式是 **p 這個(gè)間接尋址運(yùn)算的意義是: ? p 是指針變量,它的值是指向“指向 int類型的指針變量” ? *p 取上述 p的內(nèi)容,得到一個(gè)指針值,該指針值“指向int類型變量” ? **p 即“ *(*p)”再取上述“ *p”的內(nèi)容,得到一個(gè) int類型的值。 可以使用指針變量 s實(shí)現(xiàn),也可以使用指向指針的指針變量 p實(shí)現(xiàn),下述三個(gè)語(yǔ)句等價(jià)。 *s = 300。 指向指針變量的指針 p 指針變量 s int類型變量 v p: amp。v 300 使用 s訪問(wèn) v內(nèi)容的形式是 *s aptr c1: ptr1: aptr c1 c o p y \0 c2 c2: ptr2: aptr c3 j i l i n . d a t \0 c4 c3: c h a n g c h u n . d a t \0 c4: b e i j i n g \0 指向指針的指針在實(shí)際程序中有很大用處,程序的命令行參數(shù)使用指向指針的指針。設(shè)有程序片段 char c1[ ]=“copy”, c2[ ]=“”; char c3[ ]= , c4[ ]=beijing 。 ptr1 = aptr 。 *(ptr1+1) = c2。 ptr1[3] = c4。(aptr[0])。 c3[7] 、 *(c3+7) aptr[2][7] 、 ptr1[2][7] 、 ptr2[2][7] *(aptr[2]+7) 、 *(ptr1[2]+7) 、 *(ptr2[2]+7) (*(aptr+2))[7] 、 (*(ptr1+2))[7] 、 (*(ptr2+2))[7] *(*(aptr+2)+7) 、 *(*(ptr1+2)+7) 、 *(*(ptr2+2)+7) 本章小結(jié) ? 本章主要介紹指針的概念與操作,并對(duì)指針與數(shù)組關(guān)系進(jìn)行詳細(xì)介紹。 只有掌握好這兩種關(guān)系才能夠正確理解指針概念以及操作,從而正確使用指針。 圖書卡管理 【 例 86】 在某圖書管理系統(tǒng)中,圖書檢索卡結(jié)構(gòu)如圖所示: 書名 : 作者 : 語(yǔ)種 出版日期 : 年 月 日 書號(hào) : 類號(hào) 序號(hào) 摘要 : 編程序,從終端輸入 100張卡片保存起來(lái);然后根據(jù)用戶不斷輸入的書號(hào),檢索相應(yīng)書名、作者名、語(yǔ)種、摘要,并輸出,直到輸入書號(hào)的類號(hào)為 ‘ z?。輸入 100張卡片,顯然是一個(gè)循環(huán),輸入一張保存一張;檢索也可以采用最簡(jiǎn)單的順序檢索。根本不必畫出 PAD。問(wèn)題是每張卡片中包含六個(gè)子數(shù)據(jù),每個(gè)子數(shù)據(jù)的類型不同,用前邊學(xué)的數(shù)據(jù)組織方式顯然解決不了問(wèn)題。本章介紹一種數(shù)據(jù)組織方式――結(jié)構(gòu)體,使用結(jié)構(gòu)體可以描述這一類由不同類型子數(shù)據(jù)項(xiàng)組成的數(shù)據(jù)。結(jié)構(gòu)體類型和聯(lián)合體類型都是構(gòu)造型數(shù)據(jù)類型。 include
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1