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

        ?

        淺析C語言中指針的應(yīng)用

        2014-10-20 11:13:10謝忠東
        科技經(jīng)濟市場 2014年8期
        關(guān)鍵詞:數(shù)組指針函數(shù)

        謝忠東

        摘 要:指針是C語言的精華部分,也是C語言課程的重點和難點章節(jié)之一,在C語言編程中起著重要的作用。只有理解了指針并能靈活運用指針,才算真正學(xué)會了C語言。因此我們在C語言教學(xué)過程中應(yīng)特別注意指針,引導(dǎo)學(xué)生正確靈活地應(yīng)用指針,編制高效的程序,發(fā)揮C語言的優(yōu)勢。

        關(guān)鍵詞:C語言;指針;函數(shù);數(shù)組

        指針是C語言中一個重要的概念,是C語言課程的重點難點章節(jié)之一,也是C語言的精華部分,在C語言編程中起著重要的作用。利用指針可以編寫靈活高效的程序。只有理解了指針并能靈活運用指針,才算真正學(xué)會了C語言。因此我們在C語言教學(xué)過程中應(yīng)特別注意指針單元,引導(dǎo)學(xué)生正確靈活地應(yīng)用指針,編制高效的程序,發(fā)揮C語言的優(yōu)勢。但由于指針是一種特殊的數(shù)據(jù)類型,概念較復(fù)雜,大多數(shù)初學(xué)者感到較難理解,使用不好反而會帶來一些麻煩。

        1 理解指針概念

        在C語言中定義的任意變量,在內(nèi)存中都占用一定的存儲單元。存儲單元的每個字節(jié)都對應(yīng)一個編號(就好比酒店中設(shè)有很多間客房,每間客房都有對應(yīng)的房牌號),此編號就是變量在內(nèi)存中的存儲地址。指針就是用來表示這些地址的變量。簡單地說,指針就是地址。例如:int x;int *point;point=&x;;表示point為指針變量,存放變量x的地址;x就是指針變量point所指向的變量。假設(shè)x的地址為2016,則point所存儲的地址即為2016。很多學(xué)生最初都存在這樣的疑問:若2016是變量x的地址,那么要表示指針point存放變量x的地址是否可以這樣賦值:point=2016。這是錯誤的,這個賦值語句中的2016表示是一個整型數(shù)據(jù),不能表示地址。對于指針變量的賦值只能用取地址運算符"&"進行賦值,即:point=&x;;&x;表示變量x的地址。初學(xué)者還需注意:指針必須先賦值后使用,指針指向的變量類型必須和指針類型一致。

        2 區(qū)分定義指針變量的*和指針運算符*

        定義指針變量語句中的*是對指針變量的說明,如int *point表示定義point是一個指向int類型的指針變量。

        指針運算符*是一個單目運算符,必須和指針變量結(jié)合表示間接訪問該指針指向的對象。如int x=50,*point=&x;;*point=60;第1個*表示定義point是一個指向x的指針變量,第2個*和指針共同組成表達式*point表示間接訪問x,相當(dāng)于給x重新賦值為60。

        3 指針與數(shù)組

        一個數(shù)組由若干個元素組成,每個元素都對應(yīng)一個地址,C語言中定義數(shù)組的指針,是指向整個數(shù)組的起始地址,和數(shù)組名表示的地址相同。數(shù)組元素的指針是數(shù)組元素的地址。例如:char s[10];char *p;這里的數(shù)組名s就是數(shù)組的首地址,若賦值p=s,則p為指向數(shù)組s的指針,表示整個數(shù)組的首地址,s+3表示距離s后3個位置所在單元的地址。s[3]表示數(shù)組中第4個元素的值,即距離s后3個位置所在單元中的值,因此s[3]與*(s+3)等價。由于p也表示數(shù)組的首地址,p+3與s+3等價,因此p[3]與*(p+3)、s[3]、*(s+3)等價。需要注意的是,p是允許移動的,如p=p+2,表示p發(fā)生改變,變?yōu)橹赶蛟豷[2]的地址,此時p[3]、*(p+3)不再表示s[3]的值,而是與s[5]等價。而此例中的s只能表示數(shù)組的首地址,不能出現(xiàn)這樣的賦值:s=s+2。

        4 指針與函數(shù)

        在指針與函數(shù)的關(guān)系中,有函數(shù)指針、指針函數(shù)、指針作為函數(shù)參數(shù)的三種常用形式。

        (1)函數(shù)指針

        函數(shù)指針是指向函數(shù)起始地址的指針,定義格式是:類型名 (*指針變量名)( );由于函數(shù)是一個整體,函數(shù)指針不能做自增、自減運算。

        (2)指針函數(shù)

        指針函數(shù)是表示指針的函數(shù),其本質(zhì)是一個函數(shù),返回值是某一類型的指針,定義格式是:類型名 *函數(shù)名(參數(shù)列表);由于返回值是地址,因此類型一般都定義為int。

        (3)指針作為函數(shù)的參數(shù)

        函數(shù)的參數(shù)可以為字符型、整型、浮點型等數(shù)據(jù),也可以是指針類型,它的作用是將變量的地址傳遞到另一個函數(shù)中。

        例如,有兩個整型變量,m的值為55,n的值為66,若要交換m、n的值,使得m的值為66,n的值為55。首先我們以傳值的方式構(gòu)建函數(shù):

        Void func_val(int x,int y)

        {

        t=x;

        x=y;

        y=t;

        }

        在調(diào)用函數(shù)func_val(m,n)后,發(fā)現(xiàn)m、n的值并沒有被交換。因為函數(shù)調(diào)用時,將實參的值傳遞給形參,函數(shù)最終交換的值是形參x、y的值,并不是實參m、n的值。

        要想使函數(shù)對兩個實參進行交換,必須使實參與賦值后的形參變量所處的地址是相同的??梢砸灾羔樀男问阶鳛樾螀⒅匦聵?gòu)建函數(shù):

        Void func_addr(int *p,int *q)

        {

        t=*p;

        *p=*q;

        *q=t;

        }

        在調(diào)用函數(shù)時,必須將m、n地址傳遞給以指針形式表示的形參p、q,調(diào)用表達式應(yīng)為func_addr(&m;,&n;),調(diào)用之后實參m、n的值被交換了。通過此例可以看出,指針作為形參可以改變實參的值,使函數(shù)構(gòu)建的功能更加模塊化。在C語言程序設(shè)計過程中,指針可能是實現(xiàn)某些算法的唯一方法。

        5 結(jié)束語

        C語言程序設(shè)計是國內(nèi)外大學(xué)計算機課程中重要的課程之一,指針是該課程中非常重要的部分,也是難點之一。在理論學(xué)習(xí)了指針的各知識點后,還應(yīng)鼓勵學(xué)生在課后要多思考、多編程、多實踐。

        參考文獻:

        [1]楊智明.C語言指針使用分析[J].保山學(xué)院學(xué)報,2012.

        猜你喜歡
        數(shù)組指針函數(shù)
        JAVA稀疏矩陣算法
        電腦報(2022年13期)2022-04-12 00:32:38
        二次函數(shù)
        第3講 “函數(shù)”復(fù)習(xí)精講
        二次函數(shù)
        函數(shù)備考精講
        JAVA玩轉(zhuǎn)數(shù)學(xué)之二維數(shù)組排序
        電腦報(2020年24期)2020-07-15 06:12:41
        偷指針的人
        娃娃畫報(2019年5期)2019-06-17 16:58:10
        為什么表的指針都按照順時針方向轉(zhuǎn)動
        尋找勾股數(shù)組的歷程
        基于改進Hough變換和BP網(wǎng)絡(luò)的指針儀表識別
        電測與儀表(2015年5期)2015-04-09 11:30:42
        在线观看免费日韩精品| 国产精品 无码专区| 成l人在线观看线路1| 免费无码av片在线观看网址| 精品午夜一区二区三区久久| 色婷婷一区二区三区77| 亚洲中文av中文字幕艳妇| 少妇性俱乐部纵欲狂欢电影| 五月婷婷俺也去开心| 国产在线手机视频| 亚洲av综合色区在线观看| 黄片免费观看视频播放| 欧美xxxxx高潮喷水麻豆| 亚洲成av人片在线观看麦芽| av鲁丝一区鲁丝二区| 亚洲精品一区二区三区国产| 不卡一区二区视频日本| 中文字幕久久精品一二三区| 国产精彩视频| 偷拍视频十八岁一区二区三区| 97久久国产亚洲精品超碰热| 四房播播在线电影| 亚洲日本国产乱码va在线观看| 一区二区三区乱码专区| 国产精品vⅰdeoxxxx国产| 久久精品国产99国产精2020丨| 亚洲国产精品夜男人天堂| 中文乱码字字幕在线国语| 亚洲人成网站18禁止久久影院| 巨臀中文字幕一区二区| 快射视频网站在线观看| 欧美综合天天夜夜久久| 精品久久综合亚洲伊人| 国产一区二区三区av香蕉| 免费a级毛片在线播放| 免费无码毛片一区二区三区a片| 人妻少妇精品无码系列| 天堂av网手机线上天堂| 曰韩人妻无码一区二区三区综合部| 亚洲欧洲日韩免费无码h| 一本色道久久综合亚洲精品不|