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

正文內容

c語言第八章指針四川農業(yè)大學)課件(編輯修改稿)

2024-10-27 14:55 本頁面
 

【文章內容簡介】 for(i=0。str[i]!=0。i++) 。 return i。 } int strlen(char * str ) { int i。 for( 。*str!=0。str++) i++ 。 return i。 } 事實上,在 C中,當數(shù)組名作為函數(shù)的參數(shù)時,系統(tǒng)對其的處理方式與指針作函數(shù)參數(shù)是一樣的,或者說,系統(tǒng)將之理解為指針!也就是說,當數(shù)組名作為函數(shù)參數(shù)時,這兩種形式可以混用!即 三、數(shù)組名 作函數(shù)參數(shù) 前面我們已經知道:在 C語言中 , 對于數(shù)組名 ,處理為數(shù)組的起始地址 , 因此 , 當用數(shù)組名作為函數(shù)參數(shù)時 , 傳遞的實際上是地址 。 或者說 , 傳遞的實際上是指針 。 例: 用數(shù)組形式和指針形式分別編寫 strlen函數(shù) int strlen(char str[ ]) { int i。 for( 。*str!=0。str++) i++ 。 return i。 } int strlen(char * str ) { int i。 for(i=0。str[i]!=0。i++) 。 return i。 } 事實上,在 C中,當數(shù)組名作為函數(shù)的參數(shù)時,系統(tǒng)對其的處理方式與指針作函數(shù)參數(shù)是一樣的,或者說,系統(tǒng)將之理解為指針!也就是說,當數(shù)組名作為函數(shù)參數(shù)時,這兩種形式可以混用!即 三、數(shù)組名 作函數(shù)參數(shù) 例 2:用選擇法對數(shù)組中的元素排序: 選擇法簡介: 所謂選擇法 , 類似于我們買水果的過程:首先 ,用眼睛在所有的水果中過一遍 , 將最大的水果挑出來;然后 , 在剩下的水果中再過一遍 ,再挑出最大的 ( 其實是次大的 ) ; …… 重復這個過程 , 則手中的水果將是一個從最大到最小的一個有序的排列 ! 在這個過程中 , 有這樣的三個問題要解決: ( 1) 如何確定某個水果是最大的一個 :我們在看的過程 , 其實是一個比較的過程:先假設自己手里 ( 心里 )拿的就是最大的一個 , 然后以這個和其它的比較 , 如果這個假設在以后的比較過程中被推翻了 , 則以新值和后面的比 。 這其實就是前面講過的假設法 ! 在這個過程中 , 有這樣的三個問題要解決: ( 2) 是否每當出現(xiàn)了比現(xiàn)在的水果更大的水果時 , 就將手里的水果與這個大的水果進行交換 ? 當然可以 ,但無此必要 ! 其實我們只需記住這個水果到底有多大 , 而不必每次都換 ! 在這個過程中 , 有這樣的三個問題要解決: ( 3) 如何實現(xiàn)在剩下的水果中繼續(xù)比較: 這和前面的冒泡法相同 , 可以將一輪比較以后的最大值放在第一個數(shù)的位置;然后在進行第二輪比較時 , 第一個數(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。 if(k!=i) { t=a[k]; a[k]=a[i]; a[i]=t; } } } 待 排 序的數(shù)組 數(shù)組中的元素的個數(shù) 如果假設不成立 ,記下最大的數(shù)的位置 ! 說明我們的假設被推翻 , 此時a[k]最大 將 a[k]與 a[i]交換 , 即是將最大的數(shù)放到第一個數(shù)的位置上 ! 四、指向多維數(shù)組的指針 用指針指向多維數(shù)組時 , 在概念和使用上比指向一維數(shù)組的指針要復雜一些 。 先看下面的例子: 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ù)組中的第二個元素,則相應語句為: printf( “%d\n”, *( a+1)); 四、指向多維數(shù)組的指針 如果把上例中的數(shù)組 a的定義改為 int a[5][10]。結果會如何 ? main( ) { int i, j, a[5][10]; for( i=0; i50; i++) for( j=0; j10; j++) a[i][j]=i*5+j; printf( “%d\n”, a) ; printf( “%d\n”, a[0]) ; printf( “%d\n”, *a) ; } 13 13 13 為什么會這樣? 因為在二維數(shù)組 a[5][10]中,并不存在 a[0]這個元素,而我們使用了 a[0],系統(tǒng)對它如何看待呢?如下圖所示: a0 a00 a01 a02 a03 a04 a05 a06 a07 a08 a09 a1 a2 a3 a4 四、指向多維數(shù)組的指針 C系統(tǒng)對于二維數(shù)組是這樣認識的:二維數(shù)組a[5][10]中有 5個元素 ,a[0],a[1]… ,而每個元素 ,如 a[0],又由 10個元素組成 ,分別是a[0][0],a[0][1],a[0][2]… a[0][9],由此構成二維數(shù)組 a[5][10]的 50個元素 。對于一維數(shù)組 ,數(shù)組名代表數(shù)組的起始地址 ,而 二維數(shù)組的每行元素相當于一個一維元素 ,數(shù)組名分別為 a[0],a[1]… , 因此 ,二維數(shù)組中的 a[i],也就代表第 i行元素的起始地址 。 四、指向多維數(shù)組的指針 既然 a+i為數(shù)組中第一行的首地址 , 那么 , *(a+i)是什么 ? 這是二維數(shù)組與一維數(shù)組間的重大區(qū)別 : 對于一維數(shù)組 a[10],*a代表第 0個元素的值 。而對于二維數(shù)組a[5][10],*a不是第 0個元素的值 ,而是第 0行元素的起始地址 。 即 :* a = = a 為什么
點擊復制文檔內容
黨政相關相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1