版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
WORD(可編輯版本)———C語言的用法及特點(diǎn)C語言不但執(zhí)行效率高而且可移植性好,可以用來開發(fā)應(yīng)用軟件、驅(qū)動(dòng)、操作系統(tǒng)等。C語言也是其它眾多高級(jí)語言的鼻祖語言,所以說學(xué)習(xí)C語言是進(jìn)入編程世界的必修課。下面是我為大家整理的C語言的用法及特點(diǎn),希望對你們有援助。
C語言的特點(diǎn)
Microsoft.NET(以下簡稱.NET)框架是微軟提出的新一代Web軟件開發(fā)模型,C#語言是.NET框架中新一代的開發(fā)工具。C#語言是一種現(xiàn)代、面向?qū)ο蟮恼Z言,它簡化了C++語言在類、命名空間、方法重載和異常處理等方面的操作,它摒棄了C++的復(fù)雜性,更易使用,更少出錯(cuò)。它使用組件編程,和VB一樣容易使用。C#語法和C++和JAVA語法特別相似,如果讀者用過C++和JAVA,學(xué)習(xí)C#語言應(yīng)是比較輕松的。
用C語言編寫的源程序,務(wù)必用C#語言編譯器將C#源程序編譯為中間語言(MicroSoftIntermediateLanguage,MSIL)代碼,形成擴(kuò)展名為exe或dll文件。中間語言代碼不是CPU可執(zhí)行的機(jī)器碼,在程序運(yùn)行時(shí),務(wù)必由通用語言運(yùn)行環(huán)境(monLanguageRuntime,CLR)中的既時(shí)編譯器(JUSTINTime,JIT)將中間語言代碼翻譯為CPU可執(zhí)行的機(jī)器碼,由CPU執(zhí)行。CLR為C#語言中間語言代碼運(yùn)行提供了一種運(yùn)行時(shí)環(huán)境,C語言的CLR和JAVA語言的虛擬機(jī)類似。這種執(zhí)行方法使運(yùn)行速度變慢,但帶來其它一些好處,主要有:
通用語言規(guī)范(monLanguageSpecification,CLS):.NET系統(tǒng)包括如下語言:C#、C++、VB、J#,他們都遵守通用語言規(guī)范。任何遵守通用語言規(guī)范的語言源程序,都可編譯為相同的中間語言代碼,由CLR負(fù)責(zé)執(zhí)行。只要為其它操作系統(tǒng)編制相應(yīng)的CLR,中間語言代碼也可在其它系統(tǒng)中運(yùn)行。
自動(dòng)內(nèi)存管理:CLR內(nèi)建垃圾收集器,當(dāng)變量實(shí)例的生命周期結(jié)束時(shí),垃圾收集器負(fù)責(zé)收回不被使用的實(shí)例占用的內(nèi)存空間。不必象C和C++語言,用語句在堆中建立的實(shí)例,務(wù)必用語句釋放實(shí)例占用的內(nèi)存空間。也就是說,CLR具有自動(dòng)內(nèi)存管理功能。
交叉語言處理:由于任何遵守通用語言規(guī)范的語言源程序,都可編譯為相同的中間語言代碼,不同語言設(shè)計(jì)的組件,可以相互通用,可以從其它語言定義的類派生出本語言的新類。由于中間語言代碼由CLR負(fù)責(zé)執(zhí)行,因此異常處理方法是一致的,這在調(diào)試一種語言調(diào)用另一種語言的子程序時(shí),顯得特別便利。
增加安全:C#語言不支持指針,一切對內(nèi)存的訪問都務(wù)必通過對象的引用變量來實(shí)現(xiàn),只允許訪問內(nèi)存中允許訪問的部分,這就防止病毒程序使用非法指針訪問私有成員。也避免指針的誤操作產(chǎn)生的錯(cuò)誤。CLR執(zhí)行中間語言代碼前,要對中間語言代碼的安全性,完整性進(jìn)行驗(yàn)證,防止病毒對中間語言代碼的修改。
版本支持:系統(tǒng)中的組件或動(dòng)態(tài)聯(lián)接庫可能要升級(jí),由于這些組件或動(dòng)態(tài)聯(lián)接庫都要在注冊表中注冊,由此可能帶來一系列問題,例如,安裝新程序時(shí)自動(dòng)安裝新組件替換舊組件,有可能使某些務(wù)必使用舊組件才可以運(yùn)行的程序,使用新組件運(yùn)行不了。在.NET中這些組件或動(dòng)態(tài)聯(lián)接庫不必在注冊表中注冊,每個(gè)程序都可以使用自帶的組件或動(dòng)態(tài)聯(lián)接庫,只要把這些組件或動(dòng)態(tài)聯(lián)接庫放到運(yùn)行程序所在文件夾的子文件夾bin中,運(yùn)行程序就自動(dòng)使用在bin文件夾中的組件或動(dòng)態(tài)聯(lián)接庫。由于不需要在注冊表中注冊,軟件的安裝也變得容易了,一般將運(yùn)行程序及庫文件拷貝到指定文件夾中就可以了。
完全面向?qū)ο螅翰幌驝++語言,即支持面向過程程序設(shè)計(jì),又支持面向?qū)ο蟪绦蛟O(shè)計(jì),C語言是完全面向?qū)ο蟮?,在C中不再存在全局函數(shù)、全區(qū)變量,所有的函數(shù)、變量和常量都務(wù)必定義在類中,避免了命名沖突。C語言不支持多重繼承。
C語言assert的用法
原型定義:
#include
voidassert(intexpression);
assert的作用是現(xiàn)計(jì)算表達(dá)式expression,如果其值為假(即為0),那么它先向stderr打印一條出錯(cuò)信息,
然后通過調(diào)用abort來終止程序運(yùn)行。
請看下面的程序清單badptr.c:
復(fù)制代碼代碼如下:
#include
#include
#include
intmain(void)
{
FILE*fp;
fp=fopen(test.txt,w);//以可寫的方式打開一個(gè)文件,如果不存在就創(chuàng)建一個(gè)同名文件
assert(fp);//所以這里不會(huì)出錯(cuò)
fclose(fp);
fp=fopen(noexitfile.txt,r);//以只讀的方式打開一個(gè)文件,如果不存在就打開文件失敗
assert(fp);//所以這里出錯(cuò)
fclose(fp);//程序永遠(yuǎn)都執(zhí)行不到這里來
return0;
}
宏名:assert
功能:測試一個(gè)條件并可能使程序終止
用法:voidassert(inttest);
程序例:
復(fù)制代碼代碼如下:
#include
#include
#include
structITEM{
intkey;
intvalue;
};
/*additemtolist,makesurelistisnotnull*/
voidadditem(structITEM*itemptr){
assert(itemptr!=NULL);
/*additemtolist*/
}
intmain(void)
{
additem(NULL);
return0;
}
assert()宏用法
注意:assert是宏,而不是函數(shù)。在C的assert.h頭文件中。
assert宏的原型定義在中,其作用是如果它的`條件返回錯(cuò)誤,則終止程序執(zhí)行,原型定義:
復(fù)制代碼代碼如下:
#include
voidassert(intexpression);
assert的作用是先計(jì)算表達(dá)式expression,如果其值為假(即為0),那么它先向標(biāo)準(zhǔn)錯(cuò)誤流stderr打印一條出錯(cuò)信息,然后通過調(diào)用abort來終止程序運(yùn)行;否則,assert()無任何作用。宏assert()一般用于確認(rèn)程序的正常操作,其中表達(dá)式構(gòu)造無錯(cuò)時(shí)才為真值。完成調(diào)試后,不必從源代碼中刪除assert()語句,因?yàn)楹闚DEBUG有定義時(shí),宏assert()的定義為空。
C語言怎樣輸出菱形
適有同學(xué)問起一些C語言題目,本想上網(wǎng)查找了事,但網(wǎng)上的方法都是分為上下部分用兩個(gè)嵌套for循環(huán)輸出。我想有沒有合起來輸出的呢,這樣符合簡潔又美觀的要求呢?答案是有的。
題目:輸出行列都相等的菱形,如5行5列:
行列xxxxxxxxx
1*
2***
3*****
4***
5*
分析:
當(dāng)行數(shù)等于總行數(shù)的一半時(shí),*是遞增的,遞增為2。
當(dāng)行數(shù)大于總行數(shù)的一半時(shí),*是遞減的,遞增為2。
設(shè)有一個(gè)行列為n的菱形,
我們用變量i作為行數(shù),以0開始,i
k作為n菱第i行要輸出的*個(gè)數(shù)。
則i=n的中值(用m表示,m=(n-1)/2)時(shí),k遞增,im時(shí),k遞減。
因?yàn)閗相對于m行對稱,所以:
當(dāng)im時(shí),i每增加i-m時(shí)的k值就和第m-i行的.k值相等,即第i-m行和第m-(i-m)相對稱。
所以得出結(jié)果:
當(dāng)i=m時(shí),k=2i+1
當(dāng)im時(shí),k=2(m-(i-m))+1,(m=(n-1)/2)。即k=2n-2i-1
由于我們只需要輸出*左邊的空格即可,所以每行*左邊的空格的個(gè)數(shù)為:(n-每行的k)/2。
每行循環(huán)輸出空格,再循環(huán)輸出每行的*,再輸出回車,結(jié)束一行。
這樣我們就可以開始編程了。
#include
intmain()
{
inti,j,k,n;//定義四個(gè)變量:i是行,j每行*號(hào)前的空格數(shù),k每行的*號(hào)數(shù)
printf(pleaseinputoddn:);
scanf(%d,n);//輸入奇數(shù)n
for(i=0;i
{
if(n=2*i+1)//判斷k值
k=2*i+1;
else
k=2*n-2*i-1;
for(j=(n-k)/2;j0;j--)//循環(huán)輸出空格
printf();
for(;k0;k--)//循環(huán)輸出*號(hào)
printf(*);
printf(n);//輸出回車結(jié)束一行
}
本來呢題目就到止結(jié)束了,但上面的程序還不夠完美
比如說,別人輸入n值為偶數(shù)怎么辦?輸入非數(shù)值呢?
我們加一點(diǎn)東西進(jìn)去:
#include
intmain()
{
inti,j,k,n=0;//這里給n賦初值,即使輸入非數(shù)值,n也可有確切的值。
do{//增加一個(gè)大循環(huán),可以令n可以輸入多次以觀察不同的結(jié)果。
printf(pleaseinputoddn,0toexit:);//當(dāng)輸入0的時(shí)候,退出大循環(huán),結(jié)束程序。
scanf(%d,n);
if(!(n%2))//增加對輸入偶數(shù)的判斷。
{
printf(youinputaeven,pleaseinputagain.n);
continue;
}
for(i=0;i
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《孕嬰行業(yè)市場分析》課件
- 《ttt初級(jí)班講義》課件
- 單位人力資源管理制度展示大全十篇
- 單位人力資源管理制度佳作大合集十篇
- 黑龍江省哈爾濱市2024-2025學(xué)年高三上學(xué)期期末考試語文試題(含答案)
- 系統(tǒng)總體設(shè)計(jì)教學(xué)課件
- 單位管理制度收錄大合集【人員管理】十篇
- 2025年工程建設(shè)規(guī)范標(biāo)準(zhǔn)編制及相關(guān)工作計(jì)劃(征求意見稿)
- 小兒清熱沖劑行業(yè)市場發(fā)展及發(fā)展趨勢與投資戰(zhàn)略研究報(bào)告
- 吉林大學(xué)實(shí)驗(yàn)課件-紫外光譜實(shí)驗(yàn)
- 2025年1月山西、陜西、寧夏、青海普通高等學(xué)校招生考試適應(yīng)性測試(八省聯(lián)考)政治
- DB3707T 131-2024 城鎮(zhèn)居民供熱服務(wù)規(guī)范
- 《廣東省智慧高速公路建設(shè)指南(試行)》
- 護(hù)理年終個(gè)人工作總結(jié)
- 社區(qū)中心及衛(wèi)生院65歲及以上老年人健康體檢分析報(bào)告模板
- 年度分析報(bào)告格式范文
- 2024年度吉林省國家電網(wǎng)招聘之法學(xué)類典型題匯編及答案
- 山東省臨沂市2023-2024學(xué)年高一上學(xué)期1月期末考試 物理 含答案
- 2024年世界職業(yè)院校技能大賽中職組“嬰幼兒保育組”賽項(xiàng)考試題庫-下(多選、判斷題)
- 2023年福建公務(wù)員錄用考試《行測》真題卷及答案解析
- 中華人民共和國學(xué)前教育法
評(píng)論
0/150
提交評(píng)論