亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        C語言指針在函數(shù)中的運(yùn)用

        2019-10-10 07:17:32
        科技傳播 2019年18期
        關(guān)鍵詞:指針指向語句

        王 宣

        1 相關(guān)概念

        1)C 語言。在1972 年開發(fā)Unix 操作系統(tǒng)時(shí),丹尼斯里奇和肯湯姆遜設(shè)計(jì)了C 語言。C 語言不完全是里奇突發(fā)奇想而來,他是在湯姆遜發(fā)明的b 語言的基礎(chǔ)上進(jìn)行設(shè)計(jì)。把C 語言作為程序員的編程工具是它設(shè)計(jì)的初衷,因此它的主要目標(biāo)是成為一種有用的語言。作為面向過程抽象化的通用編程語言,C 語言在底層開發(fā)中得到了廣泛的應(yīng)用。C 語言可以進(jìn)行簡(jiǎn)單地編譯和處理低級(jí)內(nèi)存,是一種高效的編程語言,它只產(chǎn)生少量的機(jī)器語言,可以在沒有任何運(yùn)行環(huán)境支持的情況下運(yùn)行。

        2)指針。C 語言中最重要的概念之一就是指針。它用于存儲(chǔ)變量的地址,地址在scanf()函數(shù)中作為參數(shù)。一般來說,如果主函數(shù)不使用返回值,則必須對(duì)其進(jìn)行尋址以修改主函數(shù)中的值。

        3)函數(shù)。函數(shù)是執(zhí)行特定任務(wù)的獨(dú)立程序代碼單元。函數(shù)的結(jié)構(gòu)和用法已經(jīng)被C 語言的語法規(guī)則定義了。函數(shù)在C 語言中的細(xì)節(jié)略有不同。某些函數(shù)執(zhí)行操作,如printf()的作用是將數(shù)據(jù)打印在屏幕上顯示出來,而一些函數(shù)則查找直接程序以供使用,如strlen(),向程序返回指定字符串的長(zhǎng)度。

        2 C 語言指針在函數(shù)中的應(yīng)用

        2.1 指針函數(shù)參數(shù)

        從根本上看,指針是一個(gè)值為內(nèi)存地址的變量,正如char 類型變量的值是字符,int 類型變量的值是整數(shù),指針變量的值是地址。

        與指針相關(guān)的運(yùn)算符:

        &,當(dāng)&后面跟一個(gè)變量名時(shí),&給出的是變量的地址。示例:變量ph 的地址由&ph 表示。

        *,當(dāng)*后跟指針名稱或地址時(shí),*給出的是指針儲(chǔ)存的地址上的值。示例:

        ptr=&ph;//把ph 的地址儲(chǔ)存在ptr

        val=*ptr;//將ptr 指向的值(ph 的值)賦值給val

        這兩條語句等價(jià)于將ph 的值賦給val,即val=ph。

        函數(shù)的參數(shù)有多種數(shù)據(jù)類型,不僅可以是字符型數(shù)據(jù),還可以是指針型數(shù)據(jù)。指針型數(shù)據(jù)的作用是將一個(gè)變量的地址從一個(gè)函數(shù)傳遞給另一個(gè)函數(shù)。實(shí)參與形參之間的數(shù)據(jù)傳遞在C 語言中是單向的“值傳遞”。

        例:

        interchange()使用的變量并不是main()中的變量。因此交換a 和b 的值,對(duì)x 和y 的值沒有影響。如果使用return 語句,可以將被調(diào)函數(shù)的值返回到主函數(shù),但是只能返回一個(gè)值,故現(xiàn)在必須使用指針來返回兩個(gè)值。

        例:

        該程序輸出為:

        originally x=5 and y=10.

        now x=10 and y=5.

        interchange(&x,&y)該函數(shù)傳遞的不是x和y 的值,而是他們的地址。

        viod interchange(int *a,int*b)是函數(shù)的聲明。

        接下來在函數(shù)體中聲明了一個(gè)交換值時(shí)必須的臨時(shí)變量,int temp;

        temp=*a;把x 的值賦值給temp,a 儲(chǔ)存的是x 的地址,則*a 表示的是a 儲(chǔ)存的地址對(duì)應(yīng)的值,即x 的值。

        把y 的值賦給x,*a=*b;這條語句相當(dāng)于x=y。

        *b=temp;把temp 的值賦給y。

        2.2 返回指針的函數(shù)

        函數(shù)可以返回整型數(shù)據(jù)、字符型數(shù)據(jù),同時(shí)還可以返回指針型數(shù)據(jù)。指針函數(shù)返回的就是指針型數(shù)據(jù)。它的一般定義如下:

        類型名 *函數(shù)名(函數(shù)參數(shù)表列);

        其中,后綴運(yùn)算符括號(hào)“()”表示這是一個(gè)函數(shù),其前綴運(yùn)算符星號(hào)“*”表示此函數(shù)為指針型函數(shù),其函數(shù)值為指針,即它帶回來的值的類型為指針,當(dāng)調(diào)用這個(gè)函數(shù)后,將得到一個(gè)“指向返回值為…的指針(地址),“類型名”表示函數(shù)返回的指針指向的類型”。

        例:將字符串s1 與s2 拼接

        char *str(char *p1,char *p2);為定義一個(gè)函數(shù),其返回值為char 類型的指針。

        該函數(shù)的功能是將字符串s1 與字符串s2 拼接起來。

        while(*p1)

        p1++;

        當(dāng)s1 有字符時(shí)*p1 非零,循環(huán)不斷進(jìn)行,使指針p1 向后移動(dòng)。當(dāng)指針移動(dòng)到s1 結(jié)束時(shí),*p 為零,循環(huán)停止。

        接著執(zhí)行while(*p2)

        當(dāng)*p2 非零時(shí),將*p2 賦值給*p1,同時(shí),指針p1,p2 一起向后移動(dòng),如此循環(huán),直到*p2 為0(指針p2 處于s2 結(jié)尾處),停止循環(huán),實(shí)現(xiàn)s1 與s2 的拼接。

        return temp;將s1 與s2 拼接好的字符串的地址返回。

        2.3 指向函數(shù)的指針

        程序編譯后,每個(gè)函數(shù)都有執(zhí)行第一條指令的地址即首地址,稱為函數(shù)指針。函數(shù)指針即指向函數(shù)的指針變量,要間接調(diào)用函數(shù)可以使用指針變量來實(shí)現(xiàn)。

        int (*pf)(int,int);

        通過將pf 與括號(hào)中的“*”強(qiáng)制組合組合在一起,表示定義的pf 是一個(gè)指針,然后與下面的“()”再次組合,表示的是該指針指向一個(gè)函數(shù),括號(hào)里表示為int 類型的參數(shù),最后與前面的int 組合,此處int 表示該函數(shù)的返回值。因此,pf 是指向函數(shù)的指針,該函數(shù)的返回值為int。函數(shù)指針與返回指針的函數(shù)的含義大不相同。函數(shù)指針本身是一個(gè)指向函數(shù)的指針。指針函數(shù)本身是一個(gè)返回值為指針的函數(shù)。

        例:

        float (*p)(float x,float y);定 義 了 一個(gè)指向函數(shù)的指針變量。首先c=(*p)(a,b);語句:因?yàn)橹羔榩 儲(chǔ)存的是max 函數(shù)的首地址,(*p)(a,b)就相當(dāng)于max(a,b),函數(shù)返回較大值。其次c=(*p)(a,b);語句:因?yàn)橹羔榩 儲(chǔ)存的是min函數(shù)的首地址,(*p)(a,b)也就相當(dāng)于min(a,b),函數(shù)返回較小值。

        猜你喜歡
        指針指向語句
        科學(xué)備考新指向——不等式選講篇
        重點(diǎn):語句銜接
        偷指針的人
        精彩語句
        把準(zhǔn)方向盤 握緊指向燈 走好創(chuàng)新路
        為什么表的指針都按照順時(shí)針方向轉(zhuǎn)動(dòng)
        基于改進(jìn)Hough變換和BP網(wǎng)絡(luò)的指針儀表識(shí)別
        ARM Cortex—MO/MO+單片機(jī)的指針變量替換方法
        如何搞定語句銜接題
        作文語句實(shí)錄
        久久日本视频在线观看| 国产午夜久久久婷婷| 欧美手机在线视频| 日本一级三级在线观看| 国产欧美日韩一区二区加勒比| 免费a级毛片永久免费| 少妇无码av无码去区钱| 免费国产自拍视频在线观看| 国产高清成人在线观看视频| 男女爽爽无遮挡午夜视频| 亚洲国产精品久久久天堂不卡海量| 亚洲综合网中文字幕在线| 国产一区亚洲二区三区| 好看的欧美熟妇www在线| 国产精品偷伦免费观看的| 国产精品女同二区五区九区| 男吃奶玩乳尖高潮视频| 欧洲成人午夜精品无码区久久 | 国产精品激情综合久久| 成年人视频在线观看麻豆| 欧美老肥妇做爰bbww| 精品国产制服丝袜高跟| 激情五月婷婷久久综合| 一区二区三区日韩亚洲中文视频| 日韩毛片无码永久免费看| 99热这里有免费国产精品| 亚洲视频观看一区二区| 国产精品无码一区二区三级| 久久人人爽人人爽人人片亞洲| 伊在人亚洲香蕉精品区麻豆| 国产av剧情久久精品久久| 国产超碰人人爽人人做人人添| 热99精品| 亚洲女同性恋在线播放专区| 国产 高潮 抽搐 正在播放| 一本一本久久a久久精品综合麻豆| 国产福利小视频91| 97中文字幕精品一区二区三区| 麻豆成人精品国产免费| 国产成人av在线影院无毒| 久久91精品国产一区二区|