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慎用你的語言
主站蜘蛛池模板: 无码AV动漫| 亚洲精品桃花岛av在线| 蜜桃视频一区二区| 国产日韩欧美中文| www成人国产在线观看网站| 都市激情亚洲综合久久| 精品久久高清| 国产一级精品毛片基地| 麻豆精品在线播放| 为你提供最新久久精品久久综合| 99re在线观看视频| 亚洲欧美日韩综合二区三区| 国产无人区一区二区三区| 天天综合色天天综合网| 亚洲精品国产精品乱码不卞| 福利国产微拍广场一区视频在线| 国产精品久久自在自线观看| 亚洲天堂色色人体| 日本精品视频一区二区| 亚洲人成人无码www| 国产欧美日韩91| 一级毛片a女人刺激视频免费| 亚洲V日韩V无码一区二区| 精品国产污污免费网站| 国产手机在线小视频免费观看 | 成人毛片免费观看| 亚洲天堂伊人| 日韩精品一区二区三区大桥未久| 试看120秒男女啪啪免费| 国内自拍久第一页| 久久国产乱子| 久久久久人妻一区精品色奶水 | 97青青青国产在线播放| 老司机午夜精品网站在线观看 | 高清欧美性猛交XXXX黑人猛交| 久久频这里精品99香蕉久网址| 免费毛片视频| 亚洲国产日韩视频观看| 欧美色伊人| 国产丝袜无码一区二区视频| 国产成人精品在线1区| 亚洲无码高清视频在线观看| 亚洲午夜天堂| 亚洲成a人在线播放www| 高清国产在线| 色综合日本| 一边摸一边做爽的视频17国产 | 中文字幕 日韩 欧美| 国产不卡网| 国产精品污视频| 久久伊人久久亚洲综合| 国产精品无码AⅤ在线观看播放| 亚洲精品中文字幕无乱码| 成人福利在线看| 久久人与动人物A级毛片| 免费一级大毛片a一观看不卡| 亚洲第一视频网| 26uuu国产精品视频| 亚洲精品爱草草视频在线| 国产尤物在线播放| 亚洲另类国产欧美一区二区| 精品福利视频网| 国产精品美女自慰喷水| 亚洲无码高清一区| 久久黄色影院| 天堂av综合网| 免费激情网址| 久久久久久久久久国产精品| 国产亚洲视频中文字幕视频 | 国产人碰人摸人爱免费视频| 亚洲无码高清免费视频亚洲| 亚洲一区二区成人| 国产95在线 | 亚洲人成人伊人成综合网无码| 九色视频线上播放| 亚洲精品大秀视频| 九九视频免费在线观看| 国产成人精品一区二区免费看京| 国产一区亚洲一区| 免费在线看黄网址| 国产美女主播一级成人毛片| 天天综合网色中文字幕|