當前位置:
首頁 >
指针08 - 零基础入门学习C语言48
發(fā)布時間:2023/12/13
30
豆豆
生活随笔
收集整理的這篇文章主要介紹了
指针08 - 零基础入门学习C语言48
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
第八章:指針08
?讓編程改變世界
Change the world by program
?
返回指針值的函數(shù)
? 一個函數(shù)可以帶回一個整型值、字符值、實型值等,也可以帶回指針型的數(shù)據(jù),即地址。 其概念與以前類似,只是帶回的值的類型是指針類型而已。 ? 這種帶回指針值的函數(shù),一般定義形式為類型名 *函數(shù)名(參數(shù)表列);
例如:int *a(int x, int y);
?例題講解
有若干個學生的成績(每個學生有4門課程),要求在用戶輸入學生序號以后,能輸出該學生的全部成績。用指針函數(shù)來實現(xiàn)。 [codesyntax lang="c"] #include <stdio.h>void main() {double score[][4] = {{60.0, 70.0, 80.5, 90.5}, {56.0, 89.0, 67.0, 88.0}, {34.2, 78.5, 90.5, 66.0}};double *search(double(*pointer)[4], int n);double *p;int i, m;printf("Please enter the number of student: ");scanf("%d", &m);printf("The scores of No.%d are: n", m);p = search(score, m);for( i=0; i < 4; i++){printf("%5.2ft", *(p + i));}printf("nnn"); }double *search(double (*pointer)[4], int n) {double *pt;pt = *(pointer + n);return pt; } [/codesyntax] ?例題升級
對上例中的學生,找出其中有不及格課程的學生及其學生號。 答案請自行完善…… 有心的同學可以提交到我們的論壇討論 ~ 或許一道普普通通的題目翻炒翻炒后會有新的東西出來…… ?指針函數(shù)和函數(shù)指針的區(qū)別
?這兩個概念都是簡稱:
指針函數(shù)是指帶指針的函數(shù),即本質(zhì)是一個函數(shù)。 函數(shù)指針是指向函數(shù)的指針變量,因而函數(shù)指針本身首先應(yīng)是指針變量,只不過該指針變量指向函數(shù)。 ?指針數(shù)組和指向指針的指針
指針數(shù)組的概念 一個數(shù)組,若其元素均為指針類型數(shù)據(jù),稱為指針數(shù)組,也就是說,指針數(shù)組中的每一個元素都相當于一個指針變量。一維指針數(shù)組的定義形式為 ??類型名 數(shù)組名[數(shù)組長度]; 例如:int *name[4];
?從實例來認識問題
array_p.c (點擊下載源代碼) ?指針數(shù)組
例題分析
將下邊字符串按字母順序(由小到大)輸出。 char *name[]={"Fishc.com", "www.fishc.com", "home.fishc.com","fuck you!","Thank you!"}; 提示: 一, 我們可以聲明一個數(shù)組指針來指向; 二, 將排序利用strcmp()函數(shù)來解決; 三, 各個功能抽象為函數(shù)或文件。 ? 字符串在內(nèi)存中: [caption id="attachment_162" align="aligncenter" width="300"] 字符串在內(nèi)存中[/caption] ? 我們可以聲明數(shù)組指針: [caption id="attachment_163" align="aligncenter" width="300"] 聲明數(shù)組指針[/caption] ?指向指針的指針
怎樣定義一個指向指針數(shù)據(jù)的指針變量呢? 形式可以如: ?char **p; p的前面有兩個*號。*運算符的結(jié)合性是從右到左,因此**p相當于*(*p),顯然*p是指針變量的定義形式。 如果沒有最前面的*,那就是定義了一個指向字符數(shù)據(jù)的指針變量。 現(xiàn)在它前面又有一個*號,表示指針變量p是指向一個字符指針變量的。 *p就是p所指向的另一個指針變量。 ?從實例來認識問題
pointer2pointer.c (點擊下載源代碼) ?指針數(shù)組作main函數(shù)的形參
指針數(shù)組的一個重要應(yīng)用是作為main函數(shù)的形參。在以往的程序中,main函數(shù)的第一行一般寫成以下形式:void main()
括弧中是空的。實際上,main函數(shù)可以有參數(shù)。 例如:void main(int argc, char *argv[])
argc和argv就是main函數(shù)的形參。 ? main函數(shù)是由操作系統(tǒng)調(diào)用的。那么,main函數(shù)的形參的值從何處得到呢? 顯然不可能在程序中得到。實際上實參是和命令一起給出的。也就是在一個命令行中包括命令名和需要傳給main函數(shù)的參數(shù)。 命令行的一般形式為:命令名 參數(shù)1參數(shù)2……參數(shù)n [codesyntax lang="c"] #include <stdio.h> #include <stdlib.h>void main (int argc, char *argv[]) {int i;printf ("the number of string is : %dn", argc-1);for(i=1; i < argc; i++){printf ("the string %d is : %sn", i, argv[i]);} } [/codesyntax] ? [buy]?獲得所有教學視頻、課件、源代碼等資源打包?[/buy] [Downlink href='http://kuai.xunlei.com/d/LRABCUWOYHHQ']視頻下載[/Downlink]轉(zhuǎn)載于:https://www.cnblogs.com/LoveFishC/archive/2011/02/21/3847024.html
總結(jié)
以上是生活随笔為你收集整理的指针08 - 零基础入门学习C语言48的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最新世界500强排行榜出炉:沃尔玛九连冠
- 下一篇: 交行优逸白金信用卡额度一般是多少?最高3