亚洲免费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
        亚洲影院天堂中文av色| 国产一区二区视频在线免费观看| 999国产精品999久久久久久| 麻麻张开腿让我爽了一夜| 色综合久久无码中文字幕app| 偷拍av一区二区三区| 成年人干逼视频水好多| 婷婷五月婷婷五月| 国产AV无码专区亚洲AⅤ| 日本一区二区三区在线播放| 在教室轮流澡到高潮h免费视| 真人做人试看60分钟免费视频| 欧美情侣性视频| 亚洲夫妻性生活视频网站| 亚洲av日韩专区在线观看| 97久久精品人妻人人搡人人玩| 亚洲av无码一区二区乱子伦as| 日本嗯啊在线观看| 国产视频激情视频在线观看| 国产综合久久久久久鬼色| 精品国产成人亚洲午夜福利| 国产精品亚洲婷婷99久久精品| 日本最新一区二区三区在线| 人妻夜夜爽天天爽三区| 国产精品毛片无遮挡高清| 亚洲春色视频在线观看| 久久久精品国产亚洲av网深田| 久久综合国产乱子伦精品免费| 无码不卡免费一级毛片视频 | 999久久久免费精品国产| 国产精彩刺激对白视频| 日本女优中文字幕在线播放 | 国产av专区一区二区三区| 亚洲高清一区二区精品| 专干老熟女视频在线观看| 996久久国产精品线观看| 久久婷婷国产五月综合色| 蜜桃尤物在线视频免费看| 无码人妻精一区二区三区| 久久精品熟女不卡av高清| 免费人妖一区二区三区|