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

        ?

        C語言指針教學重點和難點問題淺析

        2019-10-08 06:27:21楊陽
        軟件 2019年6期

        摘 ?要: 隨著互聯(lián)網(wǎng)技術的飛速發(fā)展,計算機教學對基礎課程的要求越來越高。本文以《C語言程序設計》中指針教學為對象,通過探討概念、種類和用法,詳細講解了二維數(shù)組、行指針、二級指針、指針數(shù)組之間的區(qū)別和關系。實踐證明,對于指針重點難點的分析,有利于學生C語言知識體系的建立。

        關鍵詞: C語言;指針;計算機教學;重難點

        中圖分類號: TP3 ? ?文獻標識碼: A ? ?DOI:10.3969/j.issn.1003-6970.2019.06.045

        本文著錄格式:楊陽. C語言指針教學重點和難點問題淺析[J]. 軟件,2019,40(6):197199

        【Abstract】: With the rapid development of internet technique, more computer teaching requirements for basic courses are needed. This article focusing on pointer teaching of《C Language Programming Design》, exploring concepts, types and usage, gives a detailed explaination of the differences and relations among two-dimensional array, row pointer, two-level pointer and pointer array. The practice shows the analysis of key and difficult points of pointer is beneficial for the establishment of students C language knowledge system.

        【Key words】: C language; Pointer; Computer teaching; Key and difficult points

        0 ?引言

        隨著互聯(lián)網(wǎng)技術的飛速發(fā)展,計算機應用滲透到社會生活中的方方面面,性能優(yōu)良、用戶體驗好的軟件應用成為互聯(lián)網(wǎng)行業(yè)產(chǎn)品準入標準,人工智能的興起,促進了軟件向智能化轉變。這些市場需求的變化,要求計算機專業(yè)人才除了有全面的技術素養(yǎng),更要重視能力和基礎。這主要體現(xiàn)在,通過基礎知識的掌握,能夠快速進行學習領域環(huán)境的遷移,能夠解決實際生產(chǎn)中遇到的各種問題。《C語言程序設計》是軟件工程學科的專業(yè)基礎課程,是其他程序設計語言教學(如C++/Java)的先行課程,對于理解計算機系統(tǒng)原理、編譯技術起著重要作用。通過《C語言程序設計》的學習,學生能夠掌握面向過程編程的基本范式,理解程序運行的基本原理,進而快速過渡到面向對象程序設計。總之,C語言是計算機專業(yè)基礎教學的重要內(nèi)容[1],對于提高程序開發(fā)素養(yǎng)具有重要意義。

        在《C語言程序設計》教學中,指針是貫穿整個課程的核心內(nèi)容[2],也是學生學習的重點和難 點。本文通過對指針用法的解釋和剖析,建立清晰的認知概念,促進學生對于各類指針用法的熟練 ?掌握。

        1 ?C語言指針教學重難點概述

        指針是C語言中非常重要的概念,通過對指針的學習,可以使學生了解C編譯系統(tǒng)的尋址原理[3],增強對變量名和變量地址之間內(nèi)在關系的邏輯認 識[4],并靈活操作數(shù)組、字符串和函數(shù)間參數(shù)傳遞。正因為指針概念貫穿了多個知識點,使用起來“變化多端”,給學生掌握帶來不同程度的困難。本文將通過討論C指針的若干重難點,如指針和地址的關系、指針與數(shù)組以及二維數(shù)組、行指針、二級指針、指針數(shù)組之間的關系等,較為全面的闡述指針的多種用法,使C語言教學更加清晰簡潔。

        2 ?C語言指針若干問題探討

        2.1 ?指針和地址

        關于指針和地址之間的關系,不同的資料給出了各自的解釋。有解釋為“指針就是內(nèi)存地址”[5],有將指針理解為一種特殊的變量,這種變量專門用來存放其它變量的內(nèi)存地址。本文主要采用后一種理解,并不加區(qū)分“指針”與“指針變量”。對于32位操作系統(tǒng)而言,任一變量的地址是4個字節(jié),不管指針變量的基類型是什么,指針變量自身都占用4個字節(jié)。指針基類型還主要用來確定指針每移動一個邏輯單位所跨越的字節(jié)數(shù):基類型為int的指針每加1向后移動4個字節(jié),基類型為double的指針每加1向后移動8個字節(jié),這就意味著不同基類型的指針不能混合使用。

        2.2 ?指針和數(shù)組

        2.3 ?二維數(shù)組、行指針、二級指針、指針數(shù)組之間關系

        對于二維數(shù)組作為函數(shù)實參,那么形參的類型是fun (double (*a)[N]),即以一個行指針作為形參接受二維數(shù)組,二維數(shù)組名可以賦值給行指針。

        對于指針數(shù)組(double *arr[N])作為函數(shù)實參,那么形參的類型是fun ( double **a),即以一個指向指針的指針(二級指針)作為形參接受指針數(shù)組,指針數(shù)組名可以賦值給二級指針。

        二維數(shù)組、行指針、二級指針、指針數(shù)組之間關系的示例如下所示:

        void main(){

        int arr[3][4] = {{1,2,3,4}, {5,6,7,8}, {9,10,11, 12}};

        int(*hanP)[4]; //行指針

        int **twoP; //二級指針

        int *p[3]; //指針數(shù)組

        //指針數(shù)組的用法

        for (int i = 0; i < 3; i++) {

        p[i] = arr[i];

        }

        //行指針用法

        hanP = arr;

        //二級指針用法

        twoP = p;

        printf("%d ?", hanP[1][2]);//7

        printf("%d ?", p[1][2]); //7

        printf("%d ?", twoP[1][2]);//7

        }

        在上面的示例中,首先聲明定義了一個二維數(shù)組arr,行指針hanP,二級指針twoP,以及指針數(shù)組p。對于指針數(shù)組p而言,每一個元素都是一個普通指針,所以在對指針數(shù)組進行初始化的時候,其每一個元素都用一個列指針arr[i]來賦值,表示對應二維數(shù)組中某一行的起始元素地址。對于行指針hanP而言,直接用數(shù)組名arr進行賦值,因為數(shù)組名arr本身也是行指針類型。對于二級指針twoP而言,它表示指向指針的指針,它存儲的內(nèi)容是另一個一級指針的地址,這與指針數(shù)組名p相對應,所以將p賦值給twoP。

        如上所示,二級指針twoP、twoP+1、twoP+2、twoP+3分別指向一個一級指針p[i],即二級指針采用指針法*(twoP+i)或下標法twoP[i]可以獲取指針數(shù)組中每個元素p[i]的值。在指針數(shù)組中,通過p[1][2](或 *(*(p+1)+2) )能夠獲取到二維數(shù)組中第1行、第2列(從0開始計數(shù))的元素7,那么,根據(jù)前面的分析,twoP[1](或 *(*(twoP+1)+2) )也能夠獲取到二維數(shù)組中第1行、第2列的元素7。

        對于行指針與二級指針的關系,首先將行指針通過*運算轉化為列指針,然后再進行賦值操作:*twoP = *hanP。

        綜上討論所述二維數(shù)組、行指針、二級指針、指針數(shù)組之間的相互關系,可以發(fā)現(xiàn),不同種類的指針代表不同的尋址方式,或者說不同的地址計算方法,它們之間可以按規(guī)則進行轉化。

        3 ?結束語

        基于軟件專業(yè)課程標準的新要求,探討了《C語言程序設計》這門課中關于指針部分的重點和難點。通過對相關內(nèi)容的介紹,特別是指針與地址、指針與數(shù)組以及二維數(shù)組、行指針、二級指針、指針數(shù)組之間關系的討論,梳理了C語言課程教學中的知識要點,有利于教師的授課和學生的學習,對教育教學有一定的促進作用。

        參考文獻

        [1] 李曉東, 魏惠茹, 董振華. 項目驅動教學法在計算機程序設計語言課中的探索[J]. 軟件, 2015, 36(4): 107-109.

        [2] 賴曉燕, 趙浩, 程鈴鈁. 基于CS2013的程序設計基礎課程建設[J]. 軟件, 2018, 39(6): 16-19.

        [3] 田淑清. 全國計算機等級考試二級教程——C語言程序設計(2018年版)[M]. 北京: 高等教育出版社, 2017: 98.

        [4] 譚浩強. C程序設計[M]. 4. 北京: 清華大學出版社, 2010: 220.

        [5] 丁留海. C語言指針的底層原理[J]. 電子技術與軟件工程, 2016(21):257.

        [6] 孔浩. C指針編程之道[M]. 北京: 人民郵電出版社, 2011: 28.

        [7] 張峻. 論C語言中指針和數(shù)組關系[J]. 科技資訊, 2009(17): 28-29.

        夜夜欢性恔免费视频| 久久精品国产只有精品96| 精品少妇大屁股白浆无码| 91精品人妻一区二区三区蜜臀| 国产蜜臀精品一区二区三区| 亚洲精品中文字幕乱码三区99| 亚洲精品一区二区三区新线路| 校园春色日韩高清一区二区 | 又嫩又硬又黄又爽的视频| 精品国产18久久久久久| www.久久av.com| 国产在线视频一区二区三区不卡 | 欧美成人免费全部| 久久午夜无码鲁丝片直播午夜精品| 亚洲欧美日韩国产综合久| 色婷婷一区二区三区四区| 色噜噜色哟哟一区二区三区| 亚洲一区第二区三区四区| 人妻无码一区二区不卡无码av| 人人妻人人澡人人爽人人精品电影 | 久久人人玩人妻潮喷内射人人| 中文字幕久久久久久久系列| 中文字幕日韩熟女av| 婷婷色精品一区二区激情| 国产又色又爽又黄的| 蜜臀av无码人妻精品| 蜜臀av在线一区二区尤物| 在线一区二区三区视频观看| 无码国产精品一区二区vr老人| 无码一区二区三区免费视频| WWW拍拍拍| 疯狂做受xxxx高潮视频免费| 国产一区二区三区在线影院| 一级老熟女免费黄色片| 精品久久人妻av中文字幕| 久久AV老司机精品网站导航 | 黑人巨大白妞出浆| 特级毛片全部免费播放a一级| 开心五月骚婷婷综合网| 本道天堂成在人线av无码免费| 久久久中文久久久无码|