c语言sort函数_C语言的那些经典程序 第八期
C語言的那些經典程序 第八期
上期帶大家欣賞的指針經典程序,感覺如何?這期我們準備了幾個新指針的內容,靈活運用指針可以大大減少程序的復雜度,接下來就讓小C來說說這三個有關指針應用的經典程序吧!
1指向函數的指針源程序:
運行結果:
程序分析:
(1) main函數中,"int (*p)( int,int );"語句定義了一個指向函數的指針變量p, p所指向的函數必須是int類型。這條語句中的"( int,int ;)";用來說明p所指函數的參數個數和參數類型,這些信息應與p所指函數的參數的信息一一對應,?;如果所指函數沒有形參,這對圓括號不可省略。注意,如果將這條語句寫成"int *p( int,int);",則說明p不是指針變量,而是說明p是一個函數名,該函數的返回值的類型是基類型為int的指針類型。
(2) main函數中,"p= max;"語句把max函數的起始地址賦給指針變量p.因為是將函數的起始地址賦給p,不涉及實參與形參的結合問題,所以不能寫成"p= max(a,b);"。
(3) main函數中,"c =(*p)(a,b);"語句實現對函數的調用。用指向函數的指針變量調用函數時,只需用(*p)代替函數名即可,在(*p)之后的括號中根據需要寫上實參。其含義為:調用由p指向的函數,實參為";a,b";,得到的函數值賦給C。這條語句相當于";c=?;max(a,b);";。
2指針數組源程序:
運行結果:
程序分析:
程序中二維數組a可以看成3個維數組,p_data 是一個有3個元素的指針數組。p_data的作用是用來存放數組a的每行元素的首地址,使指針數組的每個元素p_data[i]指向數組a的相應行。可以用指針數組名p_data 或指針數組元素p_data[i]引用數組a的元素。*(*(p_data+i)+0), ;*p_data[i]、*(p_data[i]+0)或p_data[i][0]表示引用第i行第0列元素a[i][0];?*(*(p_data+i)+j), *(p_data[i]+j)或p_data[i][j]表示引用第i行第j列元素a[i][j]。
指針數組一般與二維數組建立關聯,使用時需要注意:定義指針數組的長度與定義一維數組的行數相同。
源程序:
運行結果:
程序分析:
sort函數實現了選擇排序的算法,main函數中調用sort函數,實參為數組名a,將a數組首元素的地址傳遞給形參指針變量b。在sort函數中引用*(b+k)就是引用實參數組中對應的元素a[k]。sort 函數沒有返回值,故其函?數值類型為void。
本期的經典程序就到這里啦,大家是否看過癮了呢,小C水平有限如果大家有更好的程序希望能積極投稿反映哦,咱們下期再見!
投稿郵箱:2080803313@qq.com編輯|排版|錢雄
審校|李倩倩
責任編輯|邱杰?熊克媛
宿州學院信息工程學院學生會出品
如需轉載請聯系后臺
總結
以上是生活随笔為你收集整理的c语言sort函数_C语言的那些经典程序 第八期的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hibernate_1_配置文件详解_基
- 下一篇: springboot 上传文件_基于Sp