c語言概要 第一章、概述 1、c語言的基本知識 1.1、c語言的執(zhí)行步驟 編輯-程序代碼的錄入,生成源程序*.c 編譯-語法分析查錯,翻譯生成目標程序*.obj (語法或邏輯錯誤,從第一個開始改,變量定義,語句格式,表達式格式等) 鏈接-與其他目標程序或庫鏈接裝配,生成可執(zhí)行程序*.exe 執(zhí)行 1.2、main函數(shù)的基本知識 main()函數(shù)的位置 c程序總是從main( )函數(shù)開始執(zhí)行 一個c程序可以包含一個主函數(shù),即main()函數(shù);也可以包含一個main()函數(shù)和若干其它函數(shù) 1.3、c程序的結構 函數(shù)與主函數(shù) 程序由一個或多個函數(shù)組成 必須有一個且只能有一個主函數(shù)main() 程序執(zhí)行從main開始,在main中結束,其他函數(shù)通過嵌套調(diào)用得以執(zhí)行 程序語句 C程序由語句組成 用“;”作為語句終止符 注釋 // 或 /* */ 為注釋,不能嵌套 不產(chǎn)生編譯代碼 1.4、c 程序書寫的規(guī)則 習慣用小寫字母,大小寫敏感 不使用行號,無程序行概念:通常一個語句占一行 可使用空行和空格 常用鋸齒形的書寫格式;同一層次結構的語句上下對齊。
第二章、基本數(shù)據(jù)類型與運算 2.1、c程序的數(shù)據(jù)類型 注意類型和變量含義的不同(類型是固定好的名字,變量是自己起的名字) 變量占用的存儲空間 數(shù)據(jù)類型 基本類型:整型、字符型、浮點型(單精度型,雙精度型) 構造類型:數(shù)組類型、結構體類型 指針類型 空類型 注意基本類型賦初值的方式 基本數(shù)據(jù)類型的表示形式 整形數(shù)據(jù) 十進制:以非0數(shù)字開頭,如:123,-9,0 八進制;以0數(shù)字開頭,如:0123,067 十六進制:以0x開頭,如:0x123,0xff 實型數(shù)據(jù) 十進制:必須帶小數(shù)點,如:123.0,-9.0 指數(shù)形式;如:1.23E3,0.9e-2,5e2 字符型數(shù)據(jù) 普通字符:如:'a','2','H','#' 轉(zhuǎn)義字符:如:'\n','\167','\xlf,'\\' (實現(xiàn)幾列的對齊:指定寬度。如%100\ '\t'制表位) (字符串長度。
“abc\n\t\\” strlen 6; sizeof 7) 基本數(shù)據(jù)類型的存儲長度 整型 Int 字節(jié)數(shù) 2 位數(shù) 16 數(shù)的表示范圍 -32768—32767 Short 2 16 -32768—32767 Long 4 32 -2147483648—2147483647 實型 Float 4 32 3.4e-38---3.4e38 Double 8 64 1.7e-308---1.7e308 字符型 Char 1 8 -128----127 2.2、標識符命名規(guī)則 C語言標志符命名規(guī)則 標識符有數(shù)字,字母,下劃線組成 標識符的首字符必須為字母和下劃線 標識符不能為c語言的保留字(關鍵字) 如:auto extern sizeof float static case for struct char goto switch continue in typedef const if union default long unsigned do register void double return else short while enum signed 算術運算符 + - * / % 關系運算符 > = <= != 邏輯運算符 ! && || 位運算符 <> ~ | ^ & 賦值運算符 = 及其擴展賦值運算符 條件運算符 ? : 逗號運算符 , 指針運算符 * & 求字節(jié)數(shù)運算符 sizeof 強制類型轉(zhuǎn)換運算符 (類型) 分量運算符 . -> 下標運算符 [ ] 其他 如函數(shù)調(diào)用運算符() 運算符的優(yōu)先級 由高到低:單目運算符,算數(shù)運算符,關系運算符,賦值運算符 說明:單目運算符:自增運算符,自減運算符,類型裝換運算符。結合方向:自右至左 如:++--I 先—i.。
算術運算 結合方向自左至右 2.3基本運算和表達式 關系表達式和邏輯表達式 (a>b)&&(x>y) (a==b)||(x==y) !=a||(a>b) A&&b.a為0.不執(zhí)行b A||b a為1.不執(zhí)行b 在 c 中邏輯運算結果:1代表“真”,0代表“假”; 判斷一個表達式是否真:0代表“假”,非0代表“真” 條件表達式 逗號表達式 如:k=5,k++ 逗號值為5;k為6. 表達式1?表達式2 :表達式3 K=5>6 ? 1 : 0 2.4、混合運算的數(shù)據(jù)類型轉(zhuǎn)換 2/3+0.5 雙精度浮點型 第三章、順序結構程序設計 3.1、c語句的分類 簡單語句 表達式語句 表達式+分號 空語句 只有分號的語句 復合語句 用花括號將若干語句括起來 流程控制語句 選擇語句 if ,switch 循環(huán)語句 while, do while , for 轉(zhuǎn)移語句 break ,continue ,return goto 3.2、格式輸入函數(shù)scanf 一般形式:scanf(“格式控制字符串“,地址列表); 使用scanf函數(shù)時,需要注意: 格式字符的個數(shù)必須與輸入項的個數(shù)相同,數(shù)據(jù)類型必須一一對應,非格式字符串(說明性的)要原封不動的輸入。 輸入實行數(shù)據(jù)時,可以不帶小數(shù)點,即按整型數(shù)據(jù)輸入 數(shù)值型數(shù)據(jù)與字符或字符串混合輸入時,需要注意輸入方式。
3.3、格式輸出函數(shù)printf Printf(“格式控制字符串“,輸出列表); 指定輸出格式,由格式字符串和非格式字符串兩種組成,非格式字符串照原樣輸出。 %[標志][輸出最小寬度][.精度][長度]類型 標志:- 左對齊;+ 右對齊; %f, %d, %c, %s 3.4、其他輸入輸出函數(shù) Putchar getchar puts gets 第四章、選擇結構程序設計 If選擇結構 單分支 If(表達式) 語句 雙分支 If(表達式) 語句1 Else 語句2 多分支 If (表達式1) 語句1 Else if(表達式2) 語句2 。
Else if(表達式m) 語句m Else 語句n Switch(表達式) { Case 常量表達式1:語句1;break; Case 常量表達式2:語句2;break; 。
Case 常量表達式m:語句m;break; Default:語句n;break; } 注意break的使用 第五章、循環(huán)結構程序設計 循環(huán)三要素 初始條件 ;終止條件 ;在初始條件和終止條件間反復做某件事情(循環(huán)體) While(表達式) 語句 Do 語句 While(表達式)。
(第六版) Bradley L. Jones, Peler Aitken 著. 信達工作室 譯. 人民郵電出版社 這本書對初學者很好, 如果有點基礎那就更好了. 建議選擇譚浩強譚老師的書,簡單易學,理論與實踐結合的很好,而且如果能認真學的話,你會發(fā)現(xiàn)你的C語言基礎非常的實。
也不是說其他的書不好,但是有些書只是為了讓讀者入門,沒有前途呀。 先讀譚浩強的《C語言程序設計》,這是公認的中文入門級教材。
但是書中的代碼風格不敢恭維。看完這本,推薦《21天學通C語言》,這本書比較好,個人感覺。
看完這兩本,你就可以進階C++了。 C語言只要把基礎打好就好,你要是想精通的話,最好是精通C++,這樣比較有前途。
但不要操之過急。
一、C語言的結構 1、程序的構成,MAIN函數(shù)和其他函數(shù) 2、頭文件,數(shù)據(jù)說明,函數(shù)的開始和結束標志 3、源程序的書寫格式 4、C語言的風格 二、數(shù)據(jù)類型及其運算 1、C的數(shù)據(jù)類型(基本類型,構造類型,指針類型,空類型)及其定義方法。
2、C運算符的種類、運算優(yōu)先級和結合性。 3、不同類型數(shù)據(jù)間的轉(zhuǎn)換與運算。
4、C表達式類型(賦值表達式,算術表達式,關系表達式,邏輯表達式,條件表達式,逗號表達式)和求值規(guī)則。 三、基本語句 1、表達式語句,空語句,復合語句。
2、數(shù)據(jù)的輸入與輸出,輸入輸出函數(shù)的調(diào)用。 3、復合語句。
4、GOTO語句和語句標號的使用。 四、選擇結構程序設計 1、用IF語句實現(xiàn)選擇結構。
2、用SUITCH語句實現(xiàn)多分枝選擇結構。 3、選擇結構的嵌套。
五、循環(huán)結構程序設計 1、FOR循環(huán)結構。 2、WHILE和DO WHILE循環(huán)結構。
3、CONTINUE語句和BREAK語句。 4、循環(huán)的嵌套。
五、循環(huán)結構程序設計 1、FOR循環(huán)結構。 2、WHILE和DO WHILE循環(huán)結構。
3、CONTINUE語句和BREAK語句。 4、循環(huán)的嵌套。
六、數(shù)組的定義和引用 1、一維數(shù)組和多維數(shù)組的定義、初始化和引用。 2、字符串與字符數(shù)組。
七、函數(shù) 1、庫函數(shù)的正確調(diào)用。 2、函數(shù)的定義方法。
3、函數(shù)的類型和返回值。 4、形式參數(shù)和實在參數(shù),參數(shù)值的傳遞。
5、函數(shù)的正確調(diào)用,嵌套調(diào)用,遞歸調(diào)用。 6、局部變量和全局變量。
7、變量的存儲類別(自動,靜態(tài),寄存器,外部),變量的作用域和生存期。 8、內(nèi)部函數(shù)與外部函數(shù) 八、編譯預處理 1、宏定義:不帶參數(shù)的宏定義;帶參數(shù)的宏定義。
2、"文件包含"處理 九、指針 1、指針與指針變量的概念,指針與地址運算符。 2、變量、數(shù)組、字符串、函數(shù)、結構體的指針以及指向變量、數(shù)組、字符串、函數(shù)、結構體的指針變量。
通過指針引用以上各類型數(shù)據(jù)。 3、用指針作函數(shù)參數(shù)。
4、返回指針值的指針函數(shù)。 5、指針數(shù)組,指向指針的指針,MAIN函數(shù)的命令行參數(shù)。
十、結構體(即"結構" )與共用體(即" 聯(lián)合" ) 1、結構體和共用體類型數(shù)據(jù)的定義方法和引用方法。 2、用指針和結構體構成鏈表,單向鏈表的建立、輸出、刪除與插入。
十一、位運算 1、位運算符的含義及使用。 2、簡單的位運算。
十二、文件操作 只要求緩沖文件系統(tǒng)(即高級磁盤I/O系統(tǒng)),對非標準緩沖文件系統(tǒng)(即低級磁盤I/O系統(tǒng))不要求。 1、文件類型指針(FILE類型指針)。
2、文件的打開與關閉(FOPEN,FCLOSE)。 3、文件的讀寫(FPUTC,FGETC,FPUTS,FGETS,FREAD,FWRITE,FPRINT,FSCANF函數(shù)),文件的定位(REWIND,FSEEK函數(shù))。
基本語法介紹預處理命令把小寫字母轉(zhuǎn)換成大寫字母chara,b;a='x';b='y';a=a-32;b=b-32;printf("%c,%c\n%d,%d\n",a,b,a,b);復合賦值語句有利于編譯處理,能提高編譯效率并產(chǎn)生質(zhì)量較高的目標代碼C語言中的空語句:while(getchar!='\n');//這里包含了空循環(huán)體scanf與printf:scanf輸入數(shù)據(jù)可以指定數(shù)據(jù)字段的寬度,但不能規(guī)定數(shù)據(jù)的精度,而printf則可以printf(“%3,2f”,a);//這里的3.2表示按實數(shù)形式輸出,輸出寬度為3,如果輸出的數(shù)不足3,位,則按實際寬度輸出,四舍五入保留兩位小數(shù)預處理命令宏定義(1)不帶參數(shù)的宏定義#definePI3.1415926//不用加分號(2)帶參數(shù)的宏定義#defineMAN(a,b)((a)>(b)?(a):(b))在語句塊內(nèi)定義的變量稱之為局部變量,又稱為內(nèi)部變量,僅在定義它的語句塊內(nèi)有效,并且擁有自己獨立的存儲空間。
全局變量:在函數(shù)之外定義的變量成為全局變量。如果在同一個源文件中,全局變量和局部變量同名,則在局部變量的作用范圍內(nèi),全局變量不起作用,即被“屏蔽”。
說明:(1)一個函數(shù)中既可以使用本函數(shù)的局部變量,又可以使用有效的全局變量。(2)利用全局變量可以增加函數(shù)聯(lián)系的渠道,從而得到一個以上的返回值(3)全局變量一般第一個字母用大寫表示(4)建議在一般情況下不要使用全局變量,因為全局變量一直占用存儲空間,降低ile函數(shù)的通用性和程序的清晰性,容易出錯。
變量的存儲類型:(1)自動型變量autointi=1;auto關鍵字只能用于定義局部變量,為默認的類型(2)寄存器型變量register(3)靜態(tài)型變量static該變量只有在所在的函數(shù)內(nèi)有效,退出該函數(shù)時該變量的值仍然保留,下次進入后仍然可以使用。退出程序時值才消失。
(4)外部型變量externC程序在編譯時當遇到extern,先在本文件中找外部變量的定義,如果找到,就在本文件中擴展作用域,如果找不到就在連接時從其他的文件中找到外部變量的定義如果找到,就將作用域擴展到本文件,否則按出錯處理。在高級語言的學習中一方面應數(shù)量掌握該語言的語法,因為它是算法實現(xiàn)的基礎,另一方面必須認識到算法的重要性,加強思維訓練,以便寫出高質(zhì)量的程序。
getchar()getch()getche()函數(shù)和putchar()putch()函數(shù)putchar(c)putch(c)把單個字符c輸出到標準設備上getchar()getche()getch()函數(shù)用于從終端輸入數(shù)據(jù)getchar()按enter鍵之后才接受數(shù)據(jù),只接收第一個數(shù)據(jù)getch()和getche()在輸入一個字符后立刻被函數(shù)接受,不用按enter鍵。getch()不回顯輸入的數(shù)據(jù)getche()顯示輸入的數(shù)據(jù)指針與數(shù)組一維數(shù)組二維數(shù)組字符數(shù)組二維字符串指針與一維數(shù)組一維數(shù)組:不允許對數(shù)組的長度進行動態(tài)定義數(shù)組必須先定義后使用數(shù)組的定義:inti[10]intb[]={1,2,3,0,0,0}等價于intb[6]={1,2,3}字符數(shù)組:字符數(shù)組是由若干個有效字符構成且以字符'\0'作為結束標志的一個字符序列。
字符數(shù)組的定義:chara[10];字符數(shù)組的初始化:對字符數(shù)的各個元素分別進行初始化chara[3]={'a','b'};/*余下的自動補'\0',這時字符數(shù)組就變成了字符串*/用字符串常量來給字符數(shù)組進行初始化chara[13]="helloworld!"字符數(shù)組的輸入輸出:charc[6](1)用格式符“%c”逐個輸入輸出字符:scanf("%c",&c[1]);printf("%c",c[1]);(2)用格式符“%s”整個輸入輸出字符串:scanf("%s",c);printf("%s",c);字符數(shù)組與字符串的區(qū)別:字符數(shù)組用來存放和處理字符數(shù)組且不加結束標識符就“\0”時,則在程序中只能逐個引用字符數(shù)組中的各個字符,而不能一次引用整個字符數(shù)組。而字符串則可以對其引用整個數(shù)組。
其操作的方式一個是數(shù)組元素,一個是數(shù)組名。字符串處理函數(shù):(1)輸入字符串函數(shù)char*gets(char*str);//stdio.h在使用gets()輸入字符串時,可以包括空格在內(nèi)的字符,在回車時,自動驕傲字符串結束標志'\0'賦予字符數(shù)組的最后一個元素。
(2)輸出字符串函數(shù)intputs(char*str);//stdio.h在使用puts()輸出字符串時,將字符串結束標志'\0'轉(zhuǎn)換成'\n'輸出。(3)字符串復制函數(shù)char*strcpy(char*strl,char*str2);//string.h不能使用‘=’賦值語句對字符數(shù)組整體賦值,只能使用strcpy()處理。
(4)字符串比較函數(shù)intstrcmp(char*str1,char*str2);//string.h字符串比較不能使用if(str1==str2)的形式,只能使用strcmp();(5)字符串長度測量函數(shù)unsignedintstrlen(char*str);不包括字符串結束字符'\0'(6)找字符或字符串位置函數(shù)查找字符的位置:char*strchr(char*str,charch);查找字符串的位置:char*strstr(char*str1,charstr2);指針可以簡單的認為“指針”就是地址,地址就是指針。一個變量的地址只能使用&符號獲得。
指針變量:在C語言中指針被用來標識號內(nèi)存單元的地址,如果把這個地址用一個變量來保存,則這中噢噢那個變量就成為指指針變量。如指針變量pi只想變量i,那么pi就表示變量i的地址,*pi就表示變量i的值,pi=&i。
i=3與*pi=3等價指針變量的使用:先定義,后使用。定義的一般形式:數(shù)據(jù)類型*指針變量名;指針變量與普通變量建立聯(lián)系的方法(為指針賦值):指針變量名=&普通變量名;說明:(1)由于數(shù)組名就是該數(shù)組的首地址,所以指針變量與數(shù)組建。
1,C語言的運算符和優(yōu)先級
2,分支結構程序設計
3,循環(huán)結構程序
4,數(shù)組
5,函數(shù)
6,指針
7,字符類型和字符串
8,字符串與指針
9,指針數(shù)組、二級指針、指向一維數(shù)組的指針、指向函數(shù)的指針
10,返回指針的函數(shù)、數(shù)組名做函數(shù)參數(shù)
11,結構體、共用體、枚舉、自定義類型、變量存儲類別、工程文件
12,文件、宏、主函數(shù)帶形參
13,鏈表、位運算、考試環(huán)境
14,排序、強制類型轉(zhuǎn)換
最低0.27元/天開通百度文庫會員,可在文庫查看完整內(nèi)容>
原發(fā)布者:ofhyeiu2
C語言最重要的知識點總體上必須清楚的:1)程序結構是三種:順序結構、選擇結構(分支結構)、循環(huán)結構。2)讀程序都要從main()入口,然后從最上面順序往下讀(碰到循環(huán)做循環(huán),碰到選擇做選擇),有且只有一個main函數(shù)。3)計算機的數(shù)據(jù)在電腦中保存是以二進制的形式.數(shù)據(jù)存放的位置就是他的地址.4)bit是位是指為0或者1。byte是指字節(jié),一個字節(jié)=八個位.概念常考到的:1、編譯預處理不是C語言的一部分,不占運行時間,不要加分號。C語言編譯的程序稱為源程序,它以ASCII數(shù)值存放在文本文件中。誤的,一定不能出現(xiàn)分號。3、每個C語言程序中main函數(shù)是有且只有一個。4、在函數(shù)中不可以再定義函數(shù)。5、算法:可以沒有輸入,但是一定要有輸出。第一章C語言的基礎知識第一節(jié)、對C語言的基礎認識1、C語言編寫的程序稱為源程序,又稱為編譯單位。2、C語言書寫格式是自由的,每行可以寫多個語句,可以寫多行。3、一個C語言程序有且只有一個main函數(shù),是程序運行的起點。第二節(jié)、2、每個C語言程序?qū)懲旰螅际窍染幾g,后鏈接,最后運行。(.c---(.obj---(.exe)這個過程中注意.c和.obj文件時無法運行的,只有.exe文件才可以運行。(常考!)(程序編輯-程序編譯-程序連接-程序運行)第三節(jié)、標識符1、標識符(必考內(nèi)容):合法的要求是由字母,數(shù)字,下劃線組成。有其它元素就錯了。并且第一個必須為字母或則是下劃線。第一個為數(shù)字就錯了預定義標識符:背誦
1.C提供了三種主要的預處理功能,分別是__宏定義_______、___文件包含______、____條件編譯____。
2.C語言中,數(shù)組元素下標下限為___0_____。
3.數(shù)組名作函數(shù)參數(shù)傳遞時是__數(shù)組首地址______傳遞。變量作函數(shù)參數(shù)時是_值_______傳遞,
4.一個編輯好的*.C源程序,必須經(jīng)過編譯、_連接_______、后才能運行。
5.在C語言中可以用__逐個引用______法和________法引用數(shù)組元素。
6.C語言的程序結構有_順序___、_選擇___、循環(huán)____三種。
7.在C中,Char類型變量值可以賦值給___int_____類型變量。
8.使指針P指向數(shù)組int a[ ]的首址,寫作 __p=a______ ,*(P+1)是a[ _1__ ]的值
9.所謂指針是指_______;指針變量是用于存放___變量地址___的變量;字符串的指針是指__字符串的首地址________ ;函數(shù)的指針是指__函數(shù)首地址____________。
10.在函數(shù)調(diào)用中,一個函數(shù)無論直接還是間接地調(diào)用自身,該調(diào)用稱為__遞歸_____調(diào)用。
/%C3%EE%D2%F4%C4%F1/blogc語言 C語言是一種計算機程序設計語言。
它既有高級語言的特點,又具有匯編語言的特點。它可以作為系統(tǒng)設計語言,編寫工作系統(tǒng)應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬件的應用程序。
因此,它的應用范圍廣泛。 C語言對操作系統(tǒng)和系統(tǒng)使用程序以及需要對硬件進行操作的場合,用C語言明顯優(yōu)于其它解釋型高級語言,有一些大型應用軟件也是用C語言編寫的。
C語言具有繪圖能力強,可移植性,并具備很強的數(shù)據(jù)處理能力,因此適于編寫系統(tǒng)軟件,三維,二維圖形和動畫。它是數(shù)值計算的高級語言。
常用的C語言IDE(集成開發(fā)環(huán)境)有Microsoft Visual C++,Borland C++,Watcom C++ ,Borland C++ ,Borland C++ Builder,Borland C++ 3.1 for DOS,Watcom C++ 11.0 for DOS,GNU DJGPP C++ ,Lccwin32 C Compiler 3.1,Microsoft C,High C,TurboC等等。
C語言的發(fā)展歷史 C語言的原型ALGOL 60語言。(也稱為A語言) 1963年,劍橋大學將ALGOL 60語言發(fā)展成為CPL(Combined Programming Language)語言。
1967年,劍橋大學的Matin Richards 對CPL語言進行了簡化,于是產(chǎn)生了BCPL語言。 1970年,美國貝爾實驗室的Ken Thompson將BCPL進行了修改,并為它起了一個有趣的名字“B語言”。
意思是將CPL語言煮干,提煉出它的精華。并且他用B語言寫了第一個UNIX操作系統(tǒng)。
而在1973年,B語言也給人“煮”了一下,美國貝爾實驗室的D.M.RITCHIE在B語言的基礎上最終設計出了一種新的語言,他取了BCPL的第二個字母作為這種語言的名字,這就是C語言。 為了使UNIX操作系統(tǒng)推廣,1977年Dennis M.Ritchie 發(fā)表了不依賴于具體機器系統(tǒng)的C語言編譯文本《可移植的C語言編譯程序》。
1978年Brian W.Kernighian和Dennis M.Ritchie出版了名著《C語言程序》(The C Programming Language),從而使C語言成為當時世界上流行最廣泛的高級程序設計語言。 1988年,隨著微型計算機的日益普及, C語言出現(xiàn)了許多版本。
由于沒有統(tǒng)一的標準,使得這些C語言之間出現(xiàn)了一些不一致的地方。為了改變這種情況,美國國家標準研究所(ANSI)為C語言制定了一套ANSI標準, 成為現(xiàn)行的C語言標準3.C語言的主要特點 。
C語言發(fā)展迅速, 而且成為最受歡迎的語言之一, 主要因為它具有強大的功能。許多著名的系統(tǒng)軟件, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 語言編寫的。
用C語言加上一些匯編語言子程序, 就更能顯示C語言的優(yōu)勢了,象PC- DOS 、WORDSTAR等就是用這種方法編寫的。 C語言版本 目前最流行的C語言有以下幾種: ·Microsoft C 或稱 MS C ·Borland Turbo C 或稱 Turbo C ·AT&T C 這些C語言版本不僅實現(xiàn)了ANSI C標準,而且在此基礎上各自作了一些擴充。
C語言的優(yōu)點 1. 簡潔緊湊、靈活方便 C語言一共只有32個關鍵字,9種控制語句,程序書寫自由,主要用小寫字母表示。它把高級語言的基本結構和語句與低級語言的實用性結合起來。
C 語言可以象匯編語言一樣對位、字節(jié)和地址進行操作, 而這三者是計算機最基本的工作單元。 2. 運算符豐富 C的運算符包含的范圍很廣泛,共有種34個運算符。
C語言把括號、賦值、強制類型轉(zhuǎn)換等都作為運算符處理。從而使C的運算類型極其豐富表達式類型多樣化,靈活使用各種運算符可以實現(xiàn)在其它高級語言中難以實現(xiàn)的運算。
3. 數(shù)據(jù)結構豐富 C的數(shù)據(jù)類型有:整型、實型、字符型、數(shù)組類型、指針類型、結構體類型、共用體類型等。能用來實現(xiàn)各種復雜的數(shù)據(jù)類型的運算。
并引入了指針概念,使程序效率更高。另外C語言具有強大的圖形功能, 支持多種顯示器和驅(qū)動器。
且計算功能、邏輯判斷功能強大。 4. C是結構式語言 結構式語言的顯著特點是代碼及數(shù)據(jù)的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。
這種結構化方式可使程序?qū)哟吻逦?便于使用、維護以及調(diào)試。C語言是以函數(shù)形式提供給用戶的,這些函數(shù)可方便的調(diào)用,并具有多種循環(huán)、條件語句控制程序流向,從而使程序完全結構化。
5. C語法限制不太嚴格,程序設計自由度大 雖然C語言也是強類型語言,但它的語法比較靈活,允許程序編寫者有較大的自由度。 6. C語言允許直接訪問物理地址,可以直接對硬件進行操作 因此既具有高級語言的功能,又具有低級語言的許多功能,能夠象匯編語言一樣對位、字節(jié)和地址進行操作,而這三者是計算機最基本的工作單元,可以用來寫系統(tǒng)軟件。
7. C語言程序生成代碼質(zhì)量高,程序執(zhí)行效率高 一般只比匯編程序生成的目標代碼效率低10へ20%。 8. C語言適用范圍大,可移植性好 C語言有一個突出的優(yōu)點就是適合于多種操作系統(tǒng), 如DOS、UNIX,也適用于多種機型。
C語言的缺點 1. C語言的缺點主要是表現(xiàn)在數(shù)據(jù)的封裝性上,這一點使得C在數(shù)據(jù)的安全性上做的有很大缺陷,這也是C和C++的一大區(qū)別。 2. C語言的語法限制不太嚴格,對變量的類型約束不嚴格,影響程序的安全性,對數(shù)組下標越界不作檢查等。
從應用的角度,C語言比其他高級語言較難掌握。 [C語言指針] 指針就是C語言的一。
(這是別人回答我的問題,感覺很有幫助你可以了解了解)如何學好c語言 教了多年《C程序設計》課程,大多學生覺的這門課程難學。
其實,按照我們現(xiàn)在的教學大綱和教學要求,只要同學們掌握一些方法,克服心理上畏難、不輕言放棄,是完全可以學好的。 《C程序設計》的內(nèi)容很豐富,按照我們現(xiàn)在的教學大綱,教學的主要內(nèi)容是基礎知識、四種結構的的程序設計、函數(shù)與數(shù)組的應用和一些簡單的算法。
在學習時,同學們應該把主要精力放在這些部分,通過實踐(練習和上機調(diào)試等熟練掌握。當然,在初學C語言時,可能會遇到有些問題理解不透,或者表達方式與以往數(shù)學學習中不同(如運算符等),這就要求不氣餒,不明白的地方多問多想,鼓足勇氣進行學習,待學完后面的章節(jié)知識,前面的問題也就迎刃而解了,這一方面我感覺是我們同學最欠缺,大多學不好的就是因為一開始遇到困難就放棄,曾經(jīng)和好多同學談他的問題,回答是聽不懂、不想聽、放棄這樣三個過程,我反問,這節(jié)課你聽過課嗎?回答又是沒有,根本就沒聽過課,怎么說自己聽不懂呢?相應的根本就沒學習,又談何學的好? 學習C語言始終要記住“曙光在前頭”和“千金難買回頭看”,“千金難買回頭看”是學習知識的重要方法,就是說,學習后面的知識,不要忘了回頭弄清遺留下的問題和加深理解前面的知識,這是我們學生最不易做到的,然而卻又是最重要的。
比如:在C語言中最典型的是關于結構化程序設計構思,不管是那種教材,一開始就強調(diào)這種方法,這時也許你不能充分體會,但是學到函數(shù)時,再回頭來仔細體會,溫故知新,理解它就沒有那么難了。學習C語言就是要經(jīng)過幾個反復,才能前后貫穿,積累應該掌握的C知識。
那么,我們?nèi)绾螌W好《C程序設計》呢? 一.學好C語言的運算符和運算順序 這是學好《C程序設計》的基礎,C語言的運算非常靈活,功能十分豐富,運算種類遠多于其它程序設計語言。在表達式方面較其它程序語言更為簡潔,如自加、自減、逗號運算和三目運算使表達式更為簡單,但初學者往往會覺的這種表達式難讀,關鍵原因就是對運算符和運算順序理解不透不全。
當多種不同運算組成一個運算表達式,即一個運算式中出現(xiàn)多種運算符時,運算的優(yōu)先順序和結合規(guī)則顯得十分重要。在學習中,只要我們對此合理進行分類,找出它們與我們在數(shù)學中所學到運算之間的不同點之后,記住這些運算也就不困難了,有些運算符在理解后更會牢記心中,將來用起來得心應手,而有些可暫時放棄不記,等用到時再記不遲。
先要明確運算符按優(yōu)先級不同分類,《C程序設計》運算符可分為15種優(yōu)先級,從高到低,優(yōu)先級為1 ~ 15,除第2、3級和第14級為從右至左結合外,其它都是從左至右結合,它決定同級運算符的運算順序。下面我們通過幾個例子來說明: (1) 5*8/4%10 這個表達式中出現(xiàn)3種運算符,是同級運算符,運算順序按從左至右結合,因此先計算5 *8=40,然后被4除,結果為10,最后是%(求余數(shù))運算,所以表達式的最終結果為10%10 = 0; (2)a = 3;b = 5;c =++ a* b ;d =a + +* b; 對于c=++a*b來說,按表中所列順序,+ +先執(zhí)行,*后執(zhí)行,所以+ + a執(zhí)行后,a的值為4,由于+ +為前置運算,所以a的值4參與運算,C的值計算式為4*5=20而不是3*5=15了;而對于d=a++*b來說,由于a + +為后置運算,所以a值為4參與運算,使得d的值仍為20,而a參與運算后其值加1,值為5。
這個例子執(zhí)行后,a的值為5,b的值為5,c的值為20,d的值也是20; (3)(a = 3,b = 5,b+ = a,c = b* 5) 例子中的“,”是逗號結合運算,上式稱為逗號表達式,自左向右結合,最后一個表達式的結果值就是逗號表達式的結果,所以上面的逗號表達式結果為40,a的值為3,b的值為8,c的值為40。 (4)a=5;b=6;c=a>b?a:b; 例中的a>b?a:b是一個三目運算,它的功能是先做關系運算a>b部分,若結果為真,則取問號后a的值,否則取冒號后b的值,因此c的值應該為6,這個運算可以用來代替if…else…語句的簡單應用。
二.學好C語言的四種程序結構 (1)順序結構 順序結構的程序設計是最簡單的,只要按照解決問題的順序?qū)懗鱿鄳恼Z句就行,它的執(zhí)行順序是自上而下,依次執(zhí)行。 例如;a = 3,b = 5,現(xiàn)交換a,b的值,這個問題就好象交換兩個杯子水,這當然要用到第三個杯子,假如第三個杯子是c,那么正確的程序為: c = a; a = b; b = c; 執(zhí)行結果是a = 5,b = c = 3如果改變其順序,寫成:a = b; c = a; b = c; 則執(zhí)行結果就變成a = b = c = 5,不能達到預期的目的,初學者最容易犯這種錯誤。
順序結構可以獨立使用構成一個簡單的完整程序,常見的輸入、計算,輸出三步曲的程序就是順序結構,例如計算圓的面積,其程序的語句順序就是輸入圓的半徑r,計算s = 3.14159*r*r,輸出圓的面積s。不過大多數(shù)情況下順序結構都是作為程序的一部分,與其它結構一起構成一個復雜的程序,例如分支結構中的復合語句、循環(huán)結構中的循環(huán)體等。
(2) 分支結構 順序結構的程序雖然能解決計算、輸出等問題,但不能做判斷再選擇。對于要先做判斷再選擇的問題就要使用分支結構。
分支結構的執(zhí)行是依據(jù)一定的條件選擇。
聲明:本網(wǎng)站尊重并保護知識產(chǎn)權,根據(jù)《信息網(wǎng)絡傳播權保護條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權利,請在一個月內(nèi)通知我們,我們會及時刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學習鳥. 頁面生成時間:4.103秒