亚洲免费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í)錄
        亚洲男人的天堂精品一区二区| 91在线视频在线视频| 浓毛老太交欧美老妇热爱乱| 狠狠人妻久久久久久综合蜜桃| 久久久精品人妻一区二区三区蜜桃| 麻豆五月婷婷| 国产不卡一区在线视频| av高潮一区二区三区| 国产成人综合久久久久久| 人妻体体内射精一区二区| 国产在线精品一区二区三区不卡| 久久这里有精品国产电影网| 一区二区三区人妻在线| 日本不卡的一区二区三区中文字幕| 久久精品无码一区二区日韩av| 男女啪啪永久免费观看网站| 999久久66久6只有精品| 亚洲精品一区二区三区日韩| 亚洲综合偷自成人网第页色| 午夜裸体性播放| 欧美性猛交xxxx乱大交丰满| 91极品尤物国产在线播放| 亚洲国产一区二区,毛片| 插上翅膀插上科学的翅膀飞| 女人被狂躁高潮啊的视频在线看| 99热最新在线观看| 美腿丝袜美腿国产在线| 日本午夜精品一区二区三区| 夜夜高潮夜夜爽国产伦精品| 天天摸日日摸狠狠添| 尤物AV无码色AV无码麻豆| 亚洲一区久久蜜臀av| 成人免费播放视频777777| 色一情一乱一乱一区99av| 伊人亚洲综合网色AV另类| 国内偷拍视频一区二区| 99久久免费看精品国产一| 精品久久久久成人码免费动漫| 色老头久久综合网老妇女| 精品国产夫妻自拍av| 蜜桃精品人妻一区二区三区|