• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

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

      王 宣

      1 相關(guān)概念

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

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

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

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

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

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

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

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

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

      ptr=&ph;//把ph 的地址儲存在ptr

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

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

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

      例:

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

      例:

      該程序輸出為:

      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ù)體中聲明了一個交換值時必須的臨時變量,int temp;

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

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

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

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

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

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

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

      例:將字符串s1 與s2 拼接

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

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

      while(*p1)

      p1++;

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

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

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

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

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

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

      int (*pf)(int,int);

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

      例:

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

      猜你喜歡
      指針指向語句
      科學(xué)備考新指向——不等式選講篇
      重點:語句銜接
      偷指針的人
      娃娃畫報(2019年5期)2019-06-17 16:58:10
      精彩語句
      把準方向盤 握緊指向燈 走好創(chuàng)新路
      傳媒評論(2017年8期)2017-11-08 01:47:36
      為什么表的指針都按照順時針方向轉(zhuǎn)動
      基于改進Hough變換和BP網(wǎng)絡(luò)的指針儀表識別
      電測與儀表(2015年5期)2015-04-09 11:30:42
      ARM Cortex—MO/MO+單片機的指針變量替換方法
      如何搞定語句銜接題
      語文知識(2014年4期)2014-02-28 21:59:52
      作文語句實錄
      博爱县| 准格尔旗| 平邑县| 武乡县| 浦北县| 靖州| 韩城市| 隆德县| 开原市| 东山县| 鲁山县| 泸水县| 措美县| 皮山县| 乌海市| 浦江县| 清丰县| 昌邑市| 蒙阴县| 平泉县| 黑龙江省| 吉林市| 丹东市| 名山县| 罗源县| 合江县| 陈巴尔虎旗| 交口县| 方山县| 中阳县| 刚察县| 南开区| 顺义区| 昭平县| 林周县| 肇州县| 无棣县| 吉安市| 万安县| 上高县| 喀喇|