999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

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

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

摘要:C語言一直是高校信息技術(shù)專業(yè)最重要的課程之一。C語言教學方法的探討一直以來也是教研領域中的一個熱點。針對C語言中賦值運算學生理解、運用能力相對偏弱的問題,本文引入了基于數(shù)據(jù)類型結(jié)構(gòu)的C語言賦值運算的教學觀點,強調(diào)計算機底層的處理機制的分析。在此基礎上,利用數(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)勢。計算機科學與技術(shù)專業(yè)、軟件工程專業(yè)、物聯(lián)網(wǎng)工程專業(yè)等信息技術(shù)相關(guān)專業(yè)中,C語言通常都是基礎專業(yè)必修課。C語言對構(gòu)建學生的計算思維能力、培養(yǎng)學生的軟件設計與開發(fā)能力至關(guān)重要。作為第一門程序設計語言類課程,C語言對后續(xù)專業(yè)課的學習影響很大。如何講好C語言是每一位任課教師必須認真思考的問題。

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

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

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

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)存即可;如果類型不一致,則編譯器會按照預先制定的轉(zhuǎn)換規(guī)則首先將結(jié)果處理成滿足變量類型的要求,然后在存入指定的內(nèi)存空間。

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

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ù)類型的基礎之上建立的復合數(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ì)還是反應了系統(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語言中賦值運算的教學方法

一般在C語言賦值運算的時候,教師總是將更多的精力放在介紹賦值運算操作本身,而對數(shù)據(jù)類型對賦值運算的影響介紹的相對較少,所以造成學生早后期的學習中經(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)的。當然,也可以進一步解釋,a與b所保存的均為數(shù)組a[5]和數(shù)組b[5]的首地址,而這個地址是個常量值,是不允許修改的。

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

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

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

5 結(jié)論

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

參考文獻:

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

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

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

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

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

編輯/岳鳳

猜你喜歡
結(jié)構(gòu)
DNA結(jié)構(gòu)的發(fā)現(xiàn)
《形而上學》△卷的結(jié)構(gòu)和位置
哲學評論(2021年2期)2021-08-22 01:53:34
論結(jié)構(gòu)
中華詩詞(2019年7期)2019-11-25 01:43:04
新型平衡塊結(jié)構(gòu)的應用
模具制造(2019年3期)2019-06-06 02:10:54
循環(huán)結(jié)構(gòu)謹防“死循環(huán)”
論《日出》的結(jié)構(gòu)
縱向結(jié)構(gòu)
縱向結(jié)構(gòu)
我國社會結(jié)構(gòu)的重建
人間(2015年21期)2015-03-11 15:23:21
創(chuàng)新治理結(jié)構(gòu)促進中小企業(yè)持續(xù)成長
主站蜘蛛池模板: 免费观看男人免费桶女人视频| 欧美色99| 一级毛片不卡片免费观看| 亚洲精品午夜天堂网页| 欧美日韩一区二区在线播放| 精品国产www| 亚洲国产一区在线观看| 精品视频第一页| 成人精品区| 亚洲色中色| 亚洲天堂视频网| 亚洲国产精品不卡在线| 国产精品久久久久婷婷五月| 麻豆精品在线| 亚洲天堂日韩在线| 国产亚洲一区二区三区在线| 在线播放国产一区| 日韩国产黄色网站| 久久精品日日躁夜夜躁欧美| 成人伊人色一区二区三区| 97国产精品视频自在拍| 日本午夜精品一本在线观看| аⅴ资源中文在线天堂| 蜜臀av性久久久久蜜臀aⅴ麻豆 | 91福利免费视频| 久久久久亚洲AV成人网站软件| 国产成人亚洲无吗淙合青草| 在线看免费无码av天堂的| 欧美精品1区| 亚洲AV人人澡人人双人| 国产十八禁在线观看免费| 亚洲免费毛片| 亚洲视频二| 制服无码网站| 欧美在线三级| 2021国产v亚洲v天堂无码| 国产精品yjizz视频网一二区| 伊人91在线| 国产一二三区视频| 免费国产一级 片内射老| 国产美女叼嘿视频免费看| 欧美成a人片在线观看| 四虎永久免费在线| 99视频在线观看免费| 欧美a在线| 成人精品亚洲| 亚洲三级视频在线观看| 暴力调教一区二区三区| jizz亚洲高清在线观看| 国产成人亚洲日韩欧美电影| 日本高清免费不卡视频| 天天躁夜夜躁狠狠躁图片| 久久久91人妻无码精品蜜桃HD| 99精品视频九九精品| 色婷婷在线影院| 亚洲国产成人久久精品软件 | 亚洲va在线∨a天堂va欧美va| 免费啪啪网址| 久久久久免费看成人影片| av一区二区无码在线| 中文天堂在线视频| 久久久波多野结衣av一区二区| 国产91成人| 国产成人免费视频精品一区二区| 91麻豆精品国产高清在线| 91视频精品| 日韩精品无码一级毛片免费| 成人在线观看不卡| 日韩在线播放中文字幕| 国产办公室秘书无码精品| 欧美成人怡春院在线激情| 亚洲一级毛片在线观播放| 亚洲综合精品香蕉久久网| 欧洲欧美人成免费全部视频| 精品伊人久久久香线蕉| 中文字幕在线播放不卡| 狠狠综合久久| 91久久天天躁狠狠躁夜夜| 国产精品手机在线观看你懂的| 午夜国产在线观看| av尤物免费在线观看| 99热在线只有精品|