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

正文內(nèi)容

c語言第八章指針?biāo)拇ㄞr(nóng)業(yè)大學(xué))課件-在線瀏覽

2024-11-10 14:55本頁面
  

【正文】 a=3, * p。a。 testpoint(p)。 } (*p)++。a t 3 0x6000 : p amp。a,amp。a。b。 printf(“a=%d,b=%d”,a,b)。 } a 3 0x2022 b 5 02022 p1 amp。b p1 amp。b p 例 21:兩數(shù)交換函數(shù) swap void swap( int * p1, int * p2) { int * p; p=p1; p1=p2; p2=p; } void main( ) { int a, b, *p1, *p2; scanf( “%d,%d”, amp。b) ; p1=amp。 p2=amp。 swap(p1,p2)。 printf(“%d,%d”,*p1,*p2)。a p2 amp。b p2 amp。a,amp。a。b。 printf(“a=%d,b=%d”,a,b)。 } a 5 0x2022 b 3 02022 p1 amp。b p1 amp。b t : 例 22:兩數(shù)交換函數(shù) swap void swap( int * p1, int * p2) { int t; t=*p1; *p1=*p2; *p2=t; } void main( ) { int a, b, *p1, *p2; scanf( “%d,%d”, amp。b) ; p1=amp。 p2=amp。 swap(p1,p2)。 printf(“%d,%d”,*p1,*p2)。a p2 amp。a p2 amp。a,amp。a。b。 printf(“a=%d,b=%d”,a,b)。 } 167。 因此 ,同樣可以用一個(gè)指針變量來指向數(shù)組中的元素 。而 “ 變量 x的指針中存放的其實(shí)是變量 x的地址 ” , 因此 , “ 數(shù)組指針中存放的是數(shù)組的地址 ” , 或者說 “ 數(shù)組指針中存放的是數(shù)組的首地址 , 即數(shù)組中第一個(gè)元素的地址 ” 。a[0]時(shí) , 我們稱 p為數(shù)組 a的 指針 。其意義與 p=amp。相同 。 如 果有 *p=5,則a[0]=5。 相加后的值是多少要根據(jù)指針 p所指向的數(shù)據(jù)類型來確定 。即 p指向整型 , 則執(zhí)行 p=p+1后 ,p中的值為 0x2022; 若定義 float * p。 同樣, p是使指針指向數(shù)組的上一個(gè)元素。 int * p; for( p=a; p amp。語句,結(jié)果是什么? printf(“%d”,*p)。 或者說 , 傳遞的實(shí)際上是指針 。 for(i=0。i++) 。 } int strlen(char * str ) { int i。*str!=0。 return i。 或者說 , 傳遞的實(shí)際上是指針 。 for( 。str++) i++ 。 } int strlen(char * str ) { int i。str[i]!=0。 return i。 這其實(shí)就是前面講過的假設(shè)法 ! 在這個(gè)過程中 , 有這樣的三個(gè)問題要解決: ( 2) 是否每當(dāng)出現(xiàn)了比現(xiàn)在的水果更大的水果時(shí) , 就將手里的水果與這個(gè)大的水果進(jìn)行交換 ? 當(dāng)然可以 ,但無此必要 ! 其實(shí)我們只需記住這個(gè)水果到底有多大 , 而不必每次都換 ! 在這個(gè)過程中 , 有這樣的三個(gè)問題要解決: ( 3) 如何實(shí)現(xiàn)在剩下的水果中繼續(xù)比較: 這和前面的冒泡法相同 , 可以將一輪比較以后的最大值放在第一個(gè)數(shù)的位置;然后在進(jìn)行第二輪比較時(shí) , 第一個(gè)數(shù)不再參與比較 ! 根據(jù)以上思路寫出的程序如下: sort( int a[ ], int n) { int i, j, k, t; for( i=0; i n1; i++) { k=i; for( j=i+1; jn; j++) if( a[k] a[j]) k=j。 先看下面的例子: main( ) { int i, a[10]; for( i=0; i〈 10; i++) a[i]=i+1; printf( “%d\n”, a[0]) ; printf( “%d\n”, a) ; printf( “%d\n”, *a) ; } 若要輸出數(shù)組中的第二個(gè)元素,則相應(yīng)語句為: printf( “%d\n”, *( a+1)); 四、指向多維數(shù)組的指針 如果把上例中的數(shù)組 a的定義改為 int a[5][10]。對于一維數(shù)組 ,數(shù)組名代表數(shù)組的起始地址 ,而 二維數(shù)組的每行元素相當(dāng)于一個(gè)一維元素 ,數(shù)組名分別為 a[0],a[1]… , 因此 ,二維數(shù)組中的 a[i],也就代表第 i行元素的起始地址 。而對于二維數(shù)組a[5][10],*a不是第 0個(gè)元素的值 ,而是第 0行元素的起始地址 。 int i,j。i3。j4。 printf(“\n”)。 main() {int a[3][4]={{1,3,5,7},{9… },{… }}。 for(i=0。i++) { for(j=0。j++) printf(“%4d”, *(*(a+i)+j) )。 } } 關(guān)鍵 :當(dāng)用數(shù)組名的指針形式引用二維數(shù)組中的元素時(shí) ,是兩個(gè) * 號(hào)而非 1個(gè) 例:用數(shù)組名的指針形式 輸出二維數(shù)組中的元素 167。 char * p。 p=a。i10。 } 一、字符串指針的基本概念 等價(jià)于 *p。 但這里要講的字符串指針是另外一種 。 3) p=“How do you do?”。 5) } 注意 : 程序第二 、 三行 ! 程序的第二行定義了一個(gè)字符指針變量 p ,第三行的作用是會(huì)么呢 ? 是把字符串 “ How do you do?”賦值給指針 p嗎 ? 當(dāng)然不是 ! 在 C中 , 字符串與數(shù)組名一樣 , 代表的
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1