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

        ?

        基于數(shù)據(jù)類型結(jié)構(gòu)觀點的C語言中賦值運算教學(xué)方法

        2018-04-08 07:36:32馬吉權(quán)金英郭興凱
        黑龍江教育·理論與實踐 2018年2期
        關(guān)鍵詞:數(shù)據(jù)類型結(jié)構(gòu)

        馬吉權(quán) 金英 郭興凱

        摘要:C語言一直是高校信息技術(shù)專業(yè)最重要的課程之一。C語言教學(xué)方法的探討一直以來也是教研領(lǐng)域中的一個熱點。針對C語言中賦值運算學(xué)生理解、運用能力相對偏弱的問題,本文引入了基于數(shù)據(jù)類型結(jié)構(gòu)的C語言賦值運算的教學(xué)觀點,強調(diào)計算機底層的處理機制的分析。在此基礎(chǔ)上,利用數(shù)據(jù)類型的一級結(jié)構(gòu)化處理,實現(xiàn)了二級數(shù)據(jù)類型結(jié)構(gòu)的直接賦值。

        關(guān)鍵詞:C語言;數(shù)據(jù)類型;結(jié)構(gòu)

        1 引言

        C是軟件開發(fā)中最流行的語言之一。相比于Java,C語言在嵌入式軟件、系統(tǒng)軟件、對實時性要求較高的軟件開發(fā)中,具有明顯的優(yōu)勢。計算機科學(xué)與技術(shù)專業(yè)、軟件工程專業(yè)、物聯(lián)網(wǎng)工程專業(yè)等信息技術(shù)相關(guān)專業(yè)中,C語言通常都是基礎(chǔ)專業(yè)必修課。C語言對構(gòu)建學(xué)生的計算思維能力、培養(yǎng)學(xué)生的軟件設(shè)計與開發(fā)能力至關(guān)重要。作為第一門程序設(shè)計語言類課程,C語言對后續(xù)專業(yè)課的學(xué)習(xí)影響很大。如何講好C語言是每一位任課教師必須認真思考的問題。

        C語言的語法規(guī)則嚴謹、運算豐富。常見的運算符包括算數(shù)運算符、關(guān)系運算符、邏輯運算符、賦值運算符等。C語言對參與運算的變量和操作數(shù)的要求是非常嚴格的,如果不能很好地理解每種運算符的運算機制,則容易在程序開發(fā)過程中發(fā)生錯誤,有些錯誤在編譯階段還無法發(fā)現(xiàn),會造成嚴重的隱患。其中,賦值運算是C語言中使用最多的運算符,共分3大類11種:簡單賦值運算符(=),復(fù)合算數(shù)賦值運算符(+=,-=,*=,/=,%=),復(fù)合位運算賦值運算符(&=,|=,^=,>>=,<<=)。這些賦值運算均已簡單賦值運算為基礎(chǔ)。

        C語言中賦值運算看似簡單,但是當(dāng)它與復(fù)雜的數(shù)據(jù)類型遇到一起的時候,也會對學(xué)習(xí)造成一定的困擾。哪些數(shù)據(jù)類型允許賦值,哪些數(shù)據(jù)類型不允許直接賦值是C語言學(xué)習(xí)中的一個難點。很多的教材里面對賦值的問題也進行了一些討論,但是更多的是讓學(xué)生記住一些賦值的規(guī)則,并沒有給出更加深入的解釋,所以造成學(xué)生對這部分知識掌握的并不扎實,經(jīng)常在做題和實際程序開發(fā)過程中發(fā)生錯誤。

        本文探討基于結(jié)構(gòu)觀點的C語言賦值運算的教學(xué)方法,試圖講清楚為什么賦值運算在某些復(fù)雜數(shù)據(jù)類型(如數(shù)組)中無法直接使用,而在另外一些復(fù)雜數(shù)據(jù)類型(如結(jié)構(gòu)體)又可以直接使用的原因。讓學(xué)生更好地理解賦值運算計算機的分析和處理過程,從而進一步加深學(xué)生對賦值運算的理解。

        2 賦值運算的本質(zhì)

        為了深入理解賦值運算,首先分析一下賦值運算在計算機內(nèi)部完成的實際操作是什么樣的。賦值運算是針對變量而言的,而變量實質(zhì)上是操作系統(tǒng)分配給用戶使用的一塊指定的內(nèi)存空間。變量類型代表了分配的內(nèi)存空間的大小以及使用規(guī)則,變量名代表了該變量所分配的內(nèi)存空間,利用取地址運算符&可以獲得具體的變量在內(nèi)存中的分配空間的第一個字節(jié)的址值。變量的賦值,就是將賦值運算 = 右側(cè)表達表達式的結(jié)果存入指定的內(nèi)存空間中。如果兩側(cè)的數(shù)據(jù)類型一致,則將結(jié)果直接寫入內(nèi)存即可;如果類型不一致,則編譯器會按照預(yù)先制定的轉(zhuǎn)換規(guī)則首先將結(jié)果處理成滿足變量類型的要求,然后在存入指定的內(nèi)存空間。

        這里,不難發(fā)現(xiàn):無論是相同數(shù)據(jù)類型變量賦值,還是可兼容的不同類型的變量賦值,賦值的基礎(chǔ)都是變量的類型,可以說賦值是以類型為基本單位進行的。

        3 C語言數(shù)據(jù)類型的結(jié)構(gòu)觀點

        通過以上的分析,不難發(fā)現(xiàn),賦值運算與數(shù)據(jù)類型是密切相關(guān)的。那么我們就先來總結(jié)一下C語言中的數(shù)據(jù)類型:

        C語言中一共包含6種基本的數(shù)據(jù)類型,4種構(gòu)造數(shù)據(jù)類型,指針數(shù)據(jù)類型和空類型,共計12種數(shù)據(jù)類型。在所有的這些數(shù)據(jù)類型中,除數(shù)組和枚舉類型外,其余的所有數(shù)據(jù)類型編譯器給分配的存儲空間都是確定大小的唯獨數(shù)組的空間大小是不確定的。這里的不確定不是對用戶而言的,而是指作為系統(tǒng)無法知道一個數(shù)組到底占用多大的內(nèi)存空間。

        這里,我們不妨賦予數(shù)據(jù)類型一種結(jié)構(gòu)的概念,即具有一級結(jié)構(gòu)的數(shù)據(jù)類型和具有二級結(jié)構(gòu)的數(shù)據(jù)類型。所謂具有一級結(jié)構(gòu)的數(shù)據(jù)類型是指系統(tǒng)能夠根據(jù)其數(shù)據(jù)類型計算得到實際需要的內(nèi)存空間;所謂具有二級結(jié)構(gòu)的數(shù)據(jù)類型是指該數(shù)據(jù)類型是在編譯器已知的數(shù)據(jù)類型的基礎(chǔ)之上建立的復(fù)合數(shù)據(jù)類型,如基本數(shù)據(jù)類型數(shù)組、結(jié)構(gòu)體數(shù)組,指針數(shù)組等。通過以上數(shù)據(jù)類型的結(jié)構(gòu)定義,不難發(fā)現(xiàn),數(shù)據(jù)類型的結(jié)構(gòu)觀點還是與系統(tǒng)密切相關(guān)的,其本質(zhì)還是反應(yīng)了系統(tǒng)對數(shù)據(jù)類型的處理機制。雖然數(shù)組與結(jié)構(gòu)體、共用體和枚舉類型都屬于C語言中的構(gòu)造數(shù)據(jù)類型,但是結(jié)構(gòu)體和共用體為具有一級結(jié)構(gòu)的數(shù)據(jù)類型,而數(shù)組和枚舉類型為具有二級結(jié)構(gòu)的數(shù)據(jù)類型。

        4 C語言中賦值運算的教學(xué)方法

        一般在C語言賦值運算的時候,教師總是將更多的精力放在介紹賦值運算操作本身,而對數(shù)據(jù)類型對賦值運算的影響介紹的相對較少,所以造成學(xué)生早后期的學(xué)習(xí)中經(jīng)常犯如下的錯誤:

        上面的代碼在邏輯上似乎是很合理的,但是如果用數(shù)據(jù)類型的結(jié)構(gòu)觀點來進行分析的話,就可以發(fā)現(xiàn):數(shù)組a[5]系統(tǒng)并不知道它占用了多大的內(nèi)存空間;與此同時,對于數(shù)組b[5],系統(tǒng)也不清楚它占用多大的內(nèi)存空間,所以這樣的賦值是無法實現(xiàn)的。當(dāng)然,也可以進一步解釋,a與b所保存的均為數(shù)組a[5]和數(shù)組b[5]的首地址,而這個地址是個常量值,是不允許修改的。

        對于結(jié)構(gòu)體數(shù)據(jù)類型,學(xué)生往往會因為認為數(shù)組無法直接賦值,而結(jié)構(gòu)體比數(shù)組的結(jié)構(gòu)更復(fù)雜,所以也無法直接賦值。

        這里,教師可以根據(jù)數(shù)據(jù)類型的結(jié)構(gòu)觀點,進一步給出解釋:在定義a、b兩個結(jié)構(gòu)體變量的時候,系統(tǒng)給a、b分配了確定大小的一樣的內(nèi)存空間,而且根據(jù)結(jié)構(gòu)體的定義可知,兩個變量內(nèi)存單元的使用規(guī)則是一樣的,所以可以直接賦值。

        接下來,還可以給學(xué)生提出一個這樣的問題:如果數(shù)組想要直接賦值,有什么辦法嗎?這樣去引起學(xué)生對數(shù)據(jù)類型,內(nèi)存管理,賦值運算等等進一步的思考,并積極地鼓勵學(xué)生大膽地到計算機上嘗試。再講解了利用循環(huán)的方式(包括函數(shù)實現(xiàn))進行兩個數(shù)組之間的賦值之后,可以給出如下的示例:

        5 結(jié)論

        C語言的賦值運算非常靈活,學(xué)生一般掌握得不夠深入。本文通過引入數(shù)據(jù)類型的結(jié)構(gòu)觀點,將數(shù)據(jù)類型劃分為一級結(jié)構(gòu)和二級結(jié)構(gòu),使學(xué)生深刻理解賦值運算的基礎(chǔ)條件和處理機制。以此為基礎(chǔ),利用這種數(shù)據(jù)類型結(jié)構(gòu)觀點還可以實現(xiàn)程序的優(yōu)化。本文也說明在實際的教學(xué)過程中,教師需要對課本知識進一步升華和總結(jié),才能讓學(xué)生更好的理解、運用。

        參考文獻:

        [1] 陳浩. C語言教學(xué)方法探討[J]. 電腦知識與技術(shù), 2015, 11: 58-59.

        [2] 王軍英, 馬紅梅. C語言程序設(shè)計教學(xué)存在的問題與對策[J]. 教育理論與實踐, 2015.

        [3] 黃智勇, 陳建軍, 張麗麗. C語言教學(xué)的思考及教學(xué)優(yōu)化[J]. 當(dāng)代教育實踐與教學(xué)研究:電子刊, 2016.

        [4] 梁科輝, 范華. C語言中數(shù)據(jù)類型轉(zhuǎn)換及其應(yīng)用探究[J]. 山東廣播電視大學(xué)學(xué)報, 2016: 87-88.

        [5] 田原. C語言運算符的結(jié)合性等3個語法問題探究[J]. 荊楚理工學(xué)院學(xué)報, 2016, 31: 91-95.

        編輯/岳鳳

        猜你喜歡
        數(shù)據(jù)類型結(jié)構(gòu)
        《形而上學(xué)》△卷的結(jié)構(gòu)和位置
        詳談Java中的基本數(shù)據(jù)類型與引用數(shù)據(jù)類型
        如何理解數(shù)據(jù)結(jié)構(gòu)中的抽象數(shù)據(jù)類型
        論結(jié)構(gòu)
        中華詩詞(2019年7期)2019-11-25 01:43:04
        新型平衡塊結(jié)構(gòu)的應(yīng)用
        模具制造(2019年3期)2019-06-06 02:10:54
        S7—400PLC系統(tǒng)時間設(shè)置方法及在煉鋼廠中的應(yīng)用
        論《日出》的結(jié)構(gòu)
        創(chuàng)新治理結(jié)構(gòu)促進中小企業(yè)持續(xù)成長
        基于BIM的結(jié)構(gòu)出圖
        范疇數(shù)據(jù)類型上的子類型*
        一二三四区中文字幕在线| 久久中文字幕久久久久91| 求网址日韩精品在线你懂的| 国产一区二区三区内射| 国产成人一区二区三区| 91精品福利观看| 亚洲愉拍自拍视频一区| 两人前一后地插着她丰满| 国产精品无码aⅴ嫩草| 狠狠久久久久综合网| 美腿丝袜一区二区三区| 国产剧情av麻豆香蕉精品| 亚洲乱亚洲乱妇50p| 亚洲国产AV无码男人的天堂| 91久久精品人妻一区二区| 国产成人精品日本亚洲i8| 97人人超碰国产精品最新| 99国产超薄丝袜足j在线播放| 精品国精品自拍自在线| 麻豆精品国产av在线网址| 久久久久久好爽爽久久| 国产亚洲精品福利在线| 日本免费精品免费视频| 国产精品爽爽ⅴa在线观看| 亚洲精品无码高潮喷水在线| 亚洲色图在线视频免费观看| 喷水白浆视频在线观看| 免费a级毛片无码| 妺妺窝人体色www在线直播| 久久亚洲综合亚洲综合| 国产在线精品一区二区三区| 激情亚洲一区国产精品| 久久精品国产一区二区涩涩| 亚洲乱码中文字幕在线播放| 欧美肥胖老妇做爰videos| 白白色发布在线播放国产| 蜜桃国产精品视频网站| 东京热无码av一区二区| 欧美第五页| 亚洲av午夜福利一区二区国产| 亚洲精品国偷拍自产在线|