999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

C語言指針在函數中的運用

2019-10-10 07:17:32
科技傳播 2019年18期
關鍵詞:語言

王 宣

1 相關概念

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

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

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

2 C 語言指針在函數中的應用

2.1 指針函數參數

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

與指針相關的運算符:

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

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

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

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

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

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

例:

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

例:

該程序輸出為:

originally x=5 and y=10.

now x=10 and y=5.

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

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

接下來在函數體中聲明了一個交換值時必須的臨時變量,int temp;

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

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

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

2.2 返回指針的函數

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

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

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

例:將字符串s1 與s2 拼接

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

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

while(*p1)

p1++;

當s1 有字符時*p1 非零,循環不斷進行,使指針p1 向后移動。當指針移動到s1 結束時,*p 為零,循環停止。

接著執行while(*p2)

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

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

2.3 指向函數的指針

程序編譯后,每個函數都有執行第一條指令的地址即首地址,稱為函數指針。函數指針即指向函數的指針變量,要間接調用函數可以使用指針變量來實現。

int (*pf)(int,int);

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

例:

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

猜你喜歡
語言
詩之新,以語言創造為基
中華詩詞(2023年8期)2023-02-06 08:51:28
語言是刀
文苑(2020年4期)2020-05-30 12:35:30
讓語言描寫搖曳多姿
多向度交往對語言磨蝕的補正之道
累積動態分析下的同聲傳譯語言壓縮
日常語言與播音語言
新聞傳播(2016年10期)2016-09-26 12:15:04
語言技能退化與語言瀕危
我有我語言
論語言的“得體”
語文知識(2014年10期)2014-02-28 22:00:56
Only Words慎用你的語言
主站蜘蛛池模板: 精品国产香蕉伊思人在线| 国产一二视频| 免费观看国产小粉嫩喷水| 国产美女91视频| 成人字幕网视频在线观看| 九九精品在线观看| 激情综合网址| 欧美亚洲国产日韩电影在线| 久久久久久国产精品mv| 色婷婷电影网| 免费xxxxx在线观看网站| 熟女日韩精品2区| 国产成人综合亚洲欧美在| 国产欧美日韩精品综合在线| 亚洲毛片一级带毛片基地| 色播五月婷婷| julia中文字幕久久亚洲| 亚洲国产精品不卡在线| 拍国产真实乱人偷精品| 五月婷婷激情四射| 中文字幕人妻av一区二区| 色有码无码视频| 乱系列中文字幕在线视频| 99视频在线免费观看| 97se亚洲| 国内精品91| 亚洲国产日韩一区| 久久国产高潮流白浆免费观看| 精品無碼一區在線觀看 | 黄色片中文字幕| 91无码人妻精品一区二区蜜桃| 毛片基地视频| 成人无码一区二区三区视频在线观看| 久久久久亚洲AV成人网站软件| 最新加勒比隔壁人妻| 国产91视频观看| 亚洲欧美日韩中文字幕在线一区| 国产成人精品一区二区免费看京| 找国产毛片看| 自拍偷拍欧美日韩| 国产成人亚洲精品无码电影| 中文字幕在线观| 亚洲欧美另类日本| 青草免费在线观看| 国产精品19p| 一本久道久久综合多人| 日韩福利视频导航| 91免费观看视频| 精品国产免费第一区二区三区日韩| 亚洲精品视频免费看| 日韩福利视频导航| a级毛片免费播放| 亚洲色图欧美激情| 99热6这里只有精品| 久久精品66| 国产白浆视频| 日韩精品中文字幕一区三区| 国产精品美女在线| 国产国产人成免费视频77777 | 久久香蕉欧美精品| 亚洲毛片在线看| 四虎成人免费毛片| 99精品久久精品| 亚洲中久无码永久在线观看软件 | av免费在线观看美女叉开腿| 欧美成人精品在线| 亚洲香蕉久久| 亚洲第一成人在线| 国产第一页亚洲| 青青热久免费精品视频6| 亚洲swag精品自拍一区| 国产精品白浆无码流出在线看| 97成人在线视频| 无码区日韩专区免费系列| 日韩国产综合精选| 国产精品亚洲综合久久小说| 日韩精品中文字幕一区三区| 亚洲国产成人麻豆精品| 国产精品成人第一区| 成年人国产网站| 免费人成在线观看成人片| 2021国产在线视频|