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ù)成長
主站蜘蛛池模板: 欧美视频二区| 91精品国产综合久久香蕉922| 91久久国产综合精品女同我| 亚洲综合香蕉| 91 九色视频丝袜| 日韩欧美国产精品| 激情网址在线观看| 综合人妻久久一区二区精品| 日韩在线网址| 99r在线精品视频在线播放| 中文字幕有乳无码| 女同国产精品一区二区| 欧美另类视频一区二区三区| 91人妻日韩人妻无码专区精品| 久久综合AV免费观看| 国产亚洲现在一区二区中文| 欧美色亚洲| 国产精品理论片| 国产情精品嫩草影院88av| 亚洲第一黄色网址| 九九热视频精品在线| 久久久受www免费人成| 青青久久91| 老司机久久99久久精品播放| 国产又色又爽又黄| 亚洲色图综合在线| 欧美色香蕉| 国产午夜精品一区二区三| 国产凹凸视频在线观看| 国产成人久久综合777777麻豆| 亚洲人成日本在线观看| 国产十八禁在线观看免费| 久久久久久久蜜桃| 最近最新中文字幕免费的一页| 久久77777| 亚洲欧洲自拍拍偷午夜色| 五月激情综合网| 一本大道香蕉高清久久| 54pao国产成人免费视频| 国产在线97| 亚洲视频一区| 在线免费看片a| 亚洲欧美不卡中文字幕| 国产AV毛片| a级毛片在线免费| a毛片在线免费观看| 91精品国产一区| 欧美a在线看| 91丝袜乱伦| 老司机aⅴ在线精品导航| 男女精品视频| 午夜性刺激在线观看免费| 天天综合天天综合| 亚洲欧美日韩另类在线一| 99久久这里只精品麻豆 | 狠狠躁天天躁夜夜躁婷婷| 青青操视频免费观看| 六月婷婷综合| 国产午夜精品一区二区三区软件| 成人精品午夜福利在线播放| 国产一线在线| 日本欧美中文字幕精品亚洲| 狠狠做深爱婷婷久久一区| 欧美19综合中文字幕| 韩日免费小视频| 国产精品成人久久| 热99精品视频| 尤物亚洲最大AV无码网站| 国产精品视屏| 99re视频在线| 久久无码av一区二区三区| 国产欧美日韩视频怡春院| 中文字幕亚洲综久久2021| 婷婷综合缴情亚洲五月伊| 亚洲大尺度在线| 五月天福利视频| 欧美黄网在线| 色妞www精品视频一级下载| 亚洲av成人无码网站在线观看| 日本91视频| 午夜福利在线观看入口| 成人国产小视频|