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

C語言指針學(xué)習(xí)必要性分析

2020-07-06 03:18:33曹雁
科技風(fēng) 2020年18期
關(guān)鍵詞:必要性

摘 要:C語言指針教學(xué)過程中碰到的舉棋不定的疑惑和學(xué)生不易理解的問題,本文通過對問題的反思,采用有針對性的案例分析了指針學(xué)習(xí)的必要性,為學(xué)生樹立了指針必須學(xué)而且要深入學(xué)的信念。

關(guān)鍵詞:C語言;指針;必要性

1 緒論

C語言是1972年誕生,至今仍然活躍的編程語言,在編程語言發(fā)展歷程中具有舉足輕重的地位。實(shí)際應(yīng)用中,C語言兼顧了高級語言和匯編語言的優(yōu)點(diǎn),以其豐富的語法結(jié)構(gòu)、可移植性、允許直接訪問物理地址、直接操作硬件、執(zhí)行效率高等優(yōu)勢,廣泛應(yīng)用于計(jì)算機(jī)系統(tǒng)開發(fā)和應(yīng)用程序底層開發(fā)。

正因?yàn)槿绱耍鞔蟾咝語言設(shè)置為計(jì)算機(jī)專業(yè)核心專業(yè)基礎(chǔ)課,掌握好C語言是評價(jià)學(xué)生計(jì)算機(jī)應(yīng)用能力的重要標(biāo)準(zhǔn),學(xué)生熟練掌握了C語言相關(guān)知識(shí),不僅能深入理解計(jì)算機(jī)工作原理,而且為今后學(xué)習(xí)其他編程語言打下堅(jiān)實(shí)的基礎(chǔ)。

C語言作為計(jì)算機(jī)專業(yè)學(xué)生學(xué)習(xí)的第一門編程語言課程,課程目標(biāo)之一就是激發(fā)學(xué)生的學(xué)習(xí)興趣,讓學(xué)生愛上編程。在實(shí)際教學(xué)中,學(xué)生起初對C語言學(xué)習(xí)興趣度很高,但隨著學(xué)習(xí)的深入,難度不斷加大,特別到了指針部分的學(xué)習(xí),如果前期基礎(chǔ)知識(shí)不牢固,更容易讓學(xué)生喪失學(xué)習(xí)興趣,學(xué)生會(huì)認(rèn)為指針是難以逾越的大山,導(dǎo)致后期的教學(xué)工作無法順利開展,教學(xué)目標(biāo)難以達(dá)成。指針作為C語言的特色和精華,學(xué)習(xí)了C語言,而沒有學(xué)習(xí)指針,那可以說沒有學(xué)習(xí)C語言。

當(dāng)前很多主流計(jì)算機(jī)編程語言,隱藏了指針的概念,但功能卻很強(qiáng)大,那么為什么要學(xué)習(xí)C語言的指針呢?實(shí)際教學(xué)過程中,發(fā)現(xiàn)很多例題和習(xí)題可以不用指針實(shí)現(xiàn);教材中指針部分也基本上是將之前的例題用指針實(shí)現(xiàn),那為什么一定要用指針實(shí)現(xiàn)呢?如果不能很好的回答這些問題,就沒有深刻理解和學(xué)習(xí)指針。下面,通過案例來體會(huì)為什么必須學(xué)習(xí)指針。

2 必要性分析

2.1 指針可以提高程序的執(zhí)行效率

馮·諾依曼計(jì)算機(jī)工作原理是將程序預(yù)先存放在主存儲(chǔ)器中,使計(jì)算機(jī)在工作時(shí)能夠自動(dòng)高速地從存儲(chǔ)器中取出指令,并執(zhí)行。根據(jù)該原理,程序執(zhí)行之前都要裝入內(nèi)存單元中,當(dāng)程序運(yùn)行時(shí),從內(nèi)存中取指令代碼和數(shù)據(jù)到CPU中,分析指令、執(zhí)行指令。仔細(xì)分析這個(gè)過程,發(fā)現(xiàn)分析指令和執(zhí)行指令的速度是和計(jì)算機(jī)的CPU配置密切相關(guān)的,但從內(nèi)存取指令和數(shù)據(jù),這個(gè)過程是可以通過技術(shù)縮短時(shí)間的,這個(gè)技術(shù)就是指針。下面通過例子進(jìn)行闡述。

int? num = 9;

printf(“%d\n”,num);

上述第1條語句定義了一個(gè)int類型的變量num,并賦值為9,也就是在內(nèi)存中開辟了一塊空間,名字命名為num,如圖1所示:

程序執(zhí)行到第2行的時(shí)候,通過變量的名字num來訪問該變量的值,這就相當(dāng)于你的朋友從遠(yuǎn)方給你郵寄了一份快遞,快遞單上只寫了你的名字和電話,那么快遞員首先要通過你的電話,問清楚你的住址,然后再去送快遞給你。

那么如果使用指針呢?

int? num = 9;

int *p = #

printf(“%d\n”,*p);

仔細(xì)分析上面的代碼段,其中第2行表示定義一個(gè)指向int類型的指針變量p,并用來保存變量num的地址,也就是指針p指向變量num,如圖2所示:

采用指針可以實(shí)現(xiàn)快速取數(shù)據(jù),比如遠(yuǎn)方的朋友郵寄了一份禮物,快遞單上記錄了你的住址,那么快遞員根據(jù)住址送貨到家。和第1種方法相比,使用指針可以快速的取指令和數(shù)據(jù),節(jié)省了時(shí)間,提高了程序執(zhí)行效率。

2.2 使用指針創(chuàng)建動(dòng)態(tài)數(shù)組

我們編寫的程序在執(zhí)行前不能確定要開辟多大的存儲(chǔ)空間,在運(yùn)行過程中通過鍵盤動(dòng)態(tài)輸入,比如下面的程序代碼:

#include

void main()

{

int n;

scanf(“%d”,&n);

int a[n];

a[1] = 2;

printf(“%d\n,a[1]);

上面代碼編譯報(bào)錯(cuò),最關(guān)鍵的錯(cuò)誤就是數(shù)組不能動(dòng)態(tài)開辟大小,也就是程序不能在運(yùn)行的時(shí)候才申請數(shù)組空間,也就是在申明或者定義數(shù)組的時(shí)候,數(shù)組的大小必須是常量。之前我們解決這個(gè)問題,數(shù)組長度通常給定一個(gè)比較大的值,但這樣會(huì)造成內(nèi)存空間的浪費(fèi)。解決這個(gè)問題,必須使用指針動(dòng)態(tài)申請空間。具體實(shí)現(xiàn)代碼如下:

#include

void main()

{

int n;

int *p;

scanf(“%d”,&n);

p = (int*)malloc(sizeof(int) * n);

*(p+1) = 2;

printf(“%d\n”,*(p+1));

free(p);

}

上述代碼運(yùn)行成功,使用指針可以完美的解決在運(yùn)行過程中動(dòng)態(tài)確定存儲(chǔ)空間的大小,使得代碼更加靈活和通用。

2.3 使用指針作為函數(shù)參數(shù)可以改變變量本身的值

在學(xué)習(xí)指針時(shí)有個(gè)經(jīng)典的案例:交換兩個(gè)變量的值。這里我們自定義函數(shù)swap()實(shí)現(xiàn)交換功能。如果不使用指針,代碼如下:

#include

void swap(int x,int y)

{

int temp;

temp = ?x;

x = y;

y = temp;

}

void main()

{

int a = 3,b = 4;

printf(“交換前a=%d,b=%d\n”,a,b);

swap(a,b);

printf(“交換后a=%d,b=%d\n”,a,b);

}

上述代碼運(yùn)行后發(fā)現(xiàn)交換前和交換后a和b的值沒有變,當(dāng)普通變量作函數(shù)參數(shù)的時(shí)候,如果不用return返回值,main函數(shù)中的變量的值是不會(huì)變化的。為了真正實(shí)現(xiàn)變量a和b的值交換,使用指針重構(gòu)上述代碼:

#include

void swap(int x,int y)

{

int temp;

temp = ?x;

x = y;

y = temp;

}

void main()

{

int a = 3,b = 4;

printf(“交換前a=%d,b=%d\n”,a,b);

swap(a,b);

printf(“交換后a=%d,b=%d\n”,a,b);

}

該程序運(yùn)行結(jié)果是:交換后a=4,b=3,實(shí)現(xiàn)了a和b真正的交換,由此可見使用指針作為函數(shù)參數(shù)可以得到多個(gè)改變的值。

3 結(jié)語

通過指針學(xué)習(xí)必要性分析,發(fā)現(xiàn)指針的確有很多不可替代的優(yōu)勢,比如可以提高程序執(zhí)行效率、程序運(yùn)行過程中動(dòng)態(tài)開辟內(nèi)存空間等,因此指針在C語言課程體系中有這不可替代的地位。作為專業(yè)教師,不能因?yàn)閷W(xué)生學(xué)習(xí)指針困難比較大而輕易選擇不講或者減少學(xué)習(xí)內(nèi)容,必須結(jié)合班情、學(xué)情,精心設(shè)計(jì)教學(xué)過程,幫助學(xué)生更好地學(xué)習(xí)指針。

參考文獻(xiàn):

[1]譚浩強(qiáng).C程序設(shè)計(jì)[M].清華大學(xué)出版社.

[2]李霞.C語言指針的應(yīng)用[J].科技創(chuàng)新導(dǎo)報(bào),2009(4):21-23.

[3]劉變蓮.C語言指針再議[J].電腦知識(shí)與技術(shù),2019(18):265-267.

作者簡介:曹雁(1982-),女,甘肅天水人,碩士研究生,主要研究軟件工程、視頻編碼。

猜你喜歡
必要性
實(shí)施天頂湖水環(huán)境容量總量控制必要性的分析
科技視界(2016年18期)2016-11-03 23:52:41
以社會(huì)主義核心價(jià)值觀為導(dǎo)向加強(qiáng)企業(yè)文化建設(shè)
科技視界(2016年18期)2016-11-03 22:06:44
高校開展散打運(yùn)動(dòng)教學(xué)的可行性及對策研究
發(fā)展村落非正式體育群體的必要性分析
試論高中生物教學(xué)中學(xué)生主動(dòng)學(xué)習(xí)的措施
互聯(lián)網(wǎng)+時(shí)代下計(jì)算機(jī)網(wǎng)絡(luò)的重要性
煤礦地質(zhì)工作與防治水工作結(jié)合的探究
電氣自動(dòng)化在電氣工程中的應(yīng)用
中國市場(2016年36期)2016-10-19 03:55:00
養(yǎng)老金入市的必要性與風(fēng)險(xiǎn)分析
中國市場(2016年33期)2016-10-18 13:13:33
論智能油田的發(fā)展趨勢及必要性
主站蜘蛛池模板: 精品国产aⅴ一区二区三区| 久久国产精品娇妻素人| 国产激情无码一区二区APP | 欧美精品v欧洲精品| 国产精品伦视频观看免费| 亚洲va欧美ⅴa国产va影院| 亚洲第一视频网站| 中文无码影院| 国产区免费| 国产香蕉在线视频| 久久精品只有这里有| 中文字幕日韩久久综合影院| 999国产精品永久免费视频精品久久| 片在线无码观看| 国产99欧美精品久久精品久久| 亚洲欧美日韩中文字幕一区二区三区| 精品少妇人妻一区二区| 狠狠综合久久久久综| 亚洲中文字幕av无码区| 国产91精品调教在线播放| 国产精欧美一区二区三区| 五月天久久婷婷| 亚洲男人的天堂网| 青青草国产在线视频| 欧美日韩一区二区三| 午夜啪啪福利| 激情無極限的亚洲一区免费| 在线观看国产精品第一区免费| 亚洲福利一区二区三区| 华人在线亚洲欧美精品| 国产日韩AV高潮在线| 国产成人av大片在线播放| 一级爱做片免费观看久久| 国产av无码日韩av无码网站 | 久无码久无码av无码| 亚洲国产天堂久久九九九| 亚洲精品老司机| 国产午夜一级淫片| 国产网友愉拍精品| 欧美黄色a| 亚洲一区色| 亚洲精品视频免费看| 性喷潮久久久久久久久| 亚洲视屏在线观看| 成年看免费观看视频拍拍| 国产网站免费| 亚洲区视频在线观看| 亚洲欧洲AV一区二区三区| 小说区 亚洲 自拍 另类| 亚欧美国产综合| 国产精品无码久久久久久| 欧美国产日韩在线播放| 一区二区三区在线不卡免费| 精品久久综合1区2区3区激情| 日韩乱码免费一区二区三区| 香蕉视频在线观看www| 九九九精品视频| 19国产精品麻豆免费观看| 色噜噜狠狠狠综合曰曰曰| 国产成人凹凸视频在线| 成人无码一区二区三区视频在线观看 | 无码精品国产dvd在线观看9久| 欧美高清视频一区二区三区| 欧美精品在线看| 毛片a级毛片免费观看免下载| 欧美国产日本高清不卡| 91麻豆久久久| 国产乱码精品一区二区三区中文| 久久精品波多野结衣| 久久五月天综合| 一个色综合久久| 黄色在线网| 国产黄色片在线看| 国产永久在线视频| 国产午夜一级毛片| 88国产经典欧美一区二区三区| 六月婷婷精品视频在线观看| 色综合久久88色综合天天提莫| 91在线丝袜| 国产迷奸在线看| 99久久精品久久久久久婷婷| 亚洲永久免费网站|