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

        ?

        C語言指針應用

        2014-06-27 08:47:30盧瑩瑩
        考試周刊 2014年24期

        盧瑩瑩

        摘 要: “指針”是C語言的精髓,是C語言區(qū)獨有的功能,在C語言的程序設計過程中起著不可或缺的作用。只有學好了指針才算掌握了C語言,同時指針也是C語言最危險的特性,如果使用不當,則很容易指到意想不到的地方,產(chǎn)生錯誤很難發(fā)現(xiàn)。應該特別注意指針教學,高效應用指針,發(fā)揮C語言的優(yōu)勢。

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

        “指針”是C語言中廣泛使用的一種數(shù)據(jù)類型,運用指針編程是C語言最主要的風格之一。利用指針可以表示各種數(shù)據(jù)結構,它與函數(shù)、數(shù)組的使用和傳遞數(shù)據(jù)有密切聯(lián)系,能方便地訪問數(shù)組,還能像匯編語言一樣處理內(nèi)存地址,從而編出精致而高效的程序。指針極大地強化了C語言的功能。學習指針是學習C語言最重要的一環(huán),能否正確理解和使用指針是判斷是否掌握了C語言的重要標志。但是指針也是C語言最危險的特性,如果使用不當,則很容易指到意想不到的地方,產(chǎn)生錯誤也很難發(fā)現(xiàn)。因此,對于初學者來說,應特別注意指針的應用。怎樣才能應用好指針呢?下面筆者以在計算機C語言教學中的體會與大家進行探討。

        一、理解指針

        在C語言中任何數(shù)據(jù)只要定義了,在內(nèi)存中就是有一定的存儲單元的。存儲單元就是變量在計算機中的存儲地址,指針就是用來表示這些地址的變量。所以簡單地說,指針就是地址,變量的指針就是變量的地址,這里還涉及一個概念就是指針變量,所謂指針變量就是用來存放指針(地址)的變量。例如:int a;假設a的地址是2000,而2000又存儲在變量point中,那么變量point就是指針的變量簡稱指針變量,a就是指針變量所指向的變量。很多初學者都存在這樣的誤區(qū):既然指針放的是地址,而2000正好是變量a的地址,那么對于指針point就可以這樣賦值:point=2000,這是錯誤的,這里的2000表示的不是地址是一個整型數(shù)據(jù)。所以對于指針變量的賦值只能用取地址運算符“&”進行賦值即:point=&a;&a即為a的地址。

        二、指針與函數(shù)

        指針作為C語言的精華有很多用途,除具有一般的功能外,其中具體特殊功能的應用總結起來有三個方面:一是用于在函數(shù)中可以返回多個值;二是可以實現(xiàn)動態(tài)調(diào)用函數(shù);三是實現(xiàn)數(shù)組的動態(tài)定義。其中,普通變量作為函數(shù)的參數(shù),傳遞的是變量的值,因此只能帶回一個返回值,但在有些場合需要返回多個值,這就必須用到指針做函數(shù)的參數(shù),因為指針作為參數(shù)傳遞的是地址,讓實參和形參指向同一個變量的地址,N個形參所指向的變量的值改變了,N個實參的值也自然改變了,從而實現(xiàn)了帶回多個返回值。這里舉個例子,編寫一個函數(shù)實現(xiàn)兩個數(shù)從小到大輸出。這個程序需要子函數(shù)實現(xiàn)兩個數(shù)的交換,把交換后的兩個值通過指針傳回主函數(shù)輸出,傳回來的是兩個值。所以普通變量做函數(shù)的參數(shù)是無法實現(xiàn)的,只能用指針作為函數(shù)的參數(shù)。具體實現(xiàn):

        子函數(shù)實現(xiàn)交換:

        swap(p1,p2)

        int *p1,*p2;

        {int p;

        p=*p1;

        *p1=*p2;

        *p2=p;

        }

        主程序實現(xiàn)調(diào)用,輸出:

        main()

        {int a,b;

        int *pointer_1,*pointer_2;

        scanf(“%d,%d”,&a,&b);

        point_ 1=&a;

        point_2=&b;

        if(a

        swap(point_1,point_2);

        printf(“%d,%d”,a,b);

        }

        由此可見,要通過函數(shù)調(diào)用得到N個返回值可以通過以下三步實現(xiàn):(1)主調(diào)函數(shù)中設N個變量,用N個指針指向他們;(2)將指針變量作實參,將N個變量的地址傳給形參;(3)通過形參指針變量指向的改變,改變N個變量的值。最后主調(diào)函數(shù)中就可以得到N個變量的返回值。

        三、指針與數(shù)組

        前面提到任何數(shù)據(jù)都有存儲單元,都有指針。所以,從這個角度出發(fā)可以將指針分為:指向變量的指針、數(shù)組指針、字符指針、指向指針的指針、函數(shù)指針、結構變量的指針及文件指針,等等。其中,指向變量的指針就是存儲變量的地址的,這是指針最簡單的一種類型。那么一個變量有地址,一個數(shù)組有若干個元素,每個元素都有一個地址,所謂數(shù)組的指針,就是指數(shù)組的名稱,實際上是指向整個數(shù)組空間的起始地址。數(shù)組元素的指針是數(shù)組元素的地址。例如:int a[10];int*p;這里的數(shù)組名a就是數(shù)組的首地址,本質上是一個指針。a[2]表示距離a指向空間向后2個位置所在空間中的存放的值,所以a[2]=*(a+2)。那么如果讓p=a,p就是指向數(shù)組的指針,對于a我們可以做加減整數(shù)運算,利用它表示數(shù)組中任何數(shù)據(jù)的值。那么對于指針也可以通過加減整數(shù)運算來表示數(shù)組中的任何數(shù)據(jù)。指針變量加上或減區(qū)一個整數(shù)n表示把指針指向的當前位置向前或向后移動n個位置。具體移動的字節(jié)數(shù)和指針數(shù)組的類型在內(nèi)存所占的字節(jié)數(shù)有關系,如果指針數(shù)組類型為整型,在內(nèi)存中占2個字節(jié),那么,指針p+1,實際上的地址值就是原址加2,對于數(shù)組元素來說就是指針向后移動一個元素。如int a[10],*p,*s;p=a;s=p+2;其中s的值表示數(shù)組中首地址向后移動2個數(shù)組元素的位置,表示a[2]對應的地址,而具體移動的字節(jié)數(shù)則為4個字節(jié)。為了表示兩個地址間存在的距離,可以通過指針間的減法實現(xiàn)。指針之間是不能有加法操作的,指針的加減運算只能對數(shù)組指針變量進行,對指向其他類型的變量的指針變量做加減運算是毫無意義的。而且兩個指針變量之間的運算只有指向同一數(shù)組時它們之間才能進行運算,否則運算將失去意義。

        四、結語

        C語言是到目前為止學習最多的程序設計語言之一,也是國外大學計算機專業(yè)唯一的必修課程。在整個C語言教學中,指針是一個十分重要的部分,也是最難掌握的部分之一。本文從對指針概念的理解、指針在函數(shù)和數(shù)組的使用等方面系統(tǒng)論述了指針,目的是讓大家清晰地了解指針、掌握指針,從而高效地應用指針。只有掌握好指針,才能充分發(fā)揮C語言的優(yōu)勢。

        參考文獻:

        [1]譚浩強.C程序設計教程.北京:清華大學出版社,2008,11.

        [2]陳剛.C語言程序設計.清華大學出版社,2010,2.

        [3]魏海新,李燕.C語言程序設計實用教程.機械工業(yè)出版社,2007,7.

        [4]路俊維,馬雪松.C語言程序設計.中國鐵道工業(yè)出版社,2009,6.

        免费观看羞羞视频网站| 一区二区三区在线观看精品视频| 中文字幕日韩高清乱码| 少妇久久久久久人妻无码| 全球av集中精品导航福利| 亚洲精品久久区二区三区蜜桃臀 | 国产农村妇女高潮大叫| 欧美精品一级| 精品视频一区二区杨幂| 亚洲综合久久中文字幕专区一区 | 五月婷婷激情小说| 中文字幕这里都是精品| 最新中文字幕人妻少妇| 国产精品51麻豆cm传媒| 免费毛片在线视频| 日韩中文字幕一区二十| 国产亚洲欧美精品永久| 国产亚洲精品aaaa片小说| 亚洲AV无码永久在线观看| 日韩女优一区二区视频| 91亚洲国产成人精品一区.| 色与欲影视天天看综合网| 中国a级毛片免费观看| 国内自拍偷拍亚洲天堂| 青青久久精品一本一区人人| 国产一区二区三区内射| 精东天美麻豆果冻传媒mv| 久久中文字幕人妻熟av女蜜柚m | 疯狂撞击丝袜人妻| 无码成人片一区二区三区| 中文字幕日韩人妻高清在线| 激情久久黄色免费网站| 亚洲av成人无码一二三在线观看| 久久久久亚洲av无码专区网站| 无码国产精品色午夜| 免费黄网站永久地址进入| 少妇真实被内射视频三四区| 久久久久久久久888| 人妻系列影片无码专区| 日本午夜伦理享色视频| 亚洲熟妇色自偷自拍另类|