A. c語言是什麼,我要怎麼學
C 語言是1972年由美國的Dennis Ritchie設計發明的, 並首次在UNIX操作系統 的 DEC PDP-11 計算機上使用。 它由早期的編程語言 BCPL( Basic Combind Programming Language) 發展演變而來。在1970年, AT&T 貝爾實驗室的 Ken Thompson根據BCPL語言設計出較先進的並取名為 B的語言, 最後導了C 語言的問世。
隨著微型計算機的日益普及, 出現了許多C 語言版本。由於沒有統一的標准, 使得這些C 語言之間出現了一些不一致的地方。為了改變這種情況, 美國國家標准 研究所(ANSI)為C 語言制定了一套ANSI標准, 成為現行的C語言標准。
C 語言發展如此迅速, 而且成為最受歡迎的語言之一, 主要因為它具有強大的 功能。許多著名的系統軟體, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 語言編寫的。 用C 語言加上一些匯編語言子程序, 就更能顯示C 語言的優勢了, 象PC- DOS 、 WORDSTAR等就是用這種方法編寫的。歸納起來C 語言具有下列特點:
1. C是中級語言
它把高級語言的基本結構和語句與低級語言的實用性結合起來。C 語言可以象 匯編語言一樣對位、位元組和地址進行操作, 而這三者是計算機最基本的工作單元。
2. C是結構式語言
結構式語言的顯著特點是代碼及數據的分隔化, 即程序的各個部分除了必要的 信息交流外彼此獨立。這種結構化方式可使程序層次清晰, 便於使用、維護以及調 試。C 語言是以函數形式提供給用戶的, 這些函數可方便的調用, 並具有多種循 環、條件語句控製程序流向, 從而使程序完全結構化。
3. C語言功能齊全
C 語言具有各種各樣的數據類型, 並引入了指針概念, 可使程序效率更高。另 外C 語言也具有強大的圖形功能, 支持多種顯示器和驅動器。而且計算功能、邏輯 判斷功能也比較強大, 可以實現決策目的。
4. C語言適用范圍大
C 語言還有一個突出的優點就是適合於多種操作系統, 如DOS、UNIX,也適用於 多種機型。
Turbo C 是美國Borland 公司的產品,Borland公司是一家專門從事軟體開發、 研製的大公司。該公司相繼推出了一套 Turbo系列軟體, 如Turbo BASIC, Turbo Pascal, Turbo Prolog, 這些軟體很受用戶歡迎。該公司在1987年首次推出Turbo C 1.0 產品, 其中使用了全然一新的集成開發環境, 即使用了一系列下拉式菜單, 將文本編輯、程序編譯、連接以及程序運行一體化, 大大方便了程序的開發。1988 年, Borland 公司又推出Turbo C1.5版本, 增加了圖形庫和文本窗口函數庫等, 而 Turbo C 2.0 則是該公司1989年出版的。Turbo C2.0在原來集成開發環境的基礎上 增加了查錯功能, 並可以在Tiny模式下直接生成.COM (數據、代碼、堆棧處在同一 64K 內存中) 文件。還可對數學協處理器 (支持8087/80287/80387等)進行模擬。
Borland 公司後來又推出了面向對象的程序軟體包Turbo C++, 它繼承發展 Turbo C 2.0 的集成開發環境, 並包含了面向對象的基本思想和設計方法。
1991年為了適用Microsoft 公司的Windows 3.0 版本, Borland 公司又將Turbo C++ 作了更新, 即Turbo C 的新一代產品Borlandc C++也已經問世了。
1.3.2 Turbo C 2.0基本配置要求
Turbo C 2.0可運行於IBM-PC系列微機, 包括XT, AT及IBM 兼容機。 此時要求 DOS 2.0或更高版本支持, 並至少需要448K的RAM, 可在任何彩、單色80列監視器上 運行。支持數學協處理器晶元, 也可進行浮點模擬, 這將加快程序的執行。
1.3.3 Turbo C 2.0內容簡介
Turbo C 2.0有六張低密軟盤(或兩張高密軟盤)。下面對Turbo C 2.0的主要文 件作一簡單介紹:
INSTALL.EXE 安裝程序文件
TC.EXE 集成編譯
TCINST.EXE 集成開發環境的配置設置程序
TCHELP.TCH 幫助文件
THELP.COM 讀取TCHELP.TCH的駐留程序
README 關於Turbo C的信息文件
TCCONFIG.EXE 配置文件轉換程序
MAKE.EXE 項目管理工具
TCC.EXE 命令行編譯
TLINK.EXE Turbo C系列連接器
TLIB.EXE Turbo C系列庫管理工具
C0?.OBJ 不同模式啟動代碼
C?.LIB 不同模式運行庫
GRAPHICS.LIB 圖形庫
EMU.LIB 8087模擬庫
FP87.LIB 8087庫
*.H Turbo C頭文件
*.BGI 不同顯示器圖形驅動程序
*.C Turbo C例行程序(源文件)
其中: 上面的?分別為:
T Tiny(微型模式)
S Small(小模式)
C Compact(緊湊模式)
M Medium(中型模式)
L Large(大模式)
H Huge(巨大模式)
Turbo C程序的一般組成部分
Turbo C 2.0 象其它語言一樣按其規定的格式和提供的語句由用戶編寫應用
程序。請看下面一段Turbo C源程序。
例1:
/*Example program of Turbo C*/
#include <stdio.h> /*包含文件說明*/
void lgc(void); /*子函數說明*/
char answer; /*定義全程變數*/
int main() /*主函數定義*/
{
char a; /*定義局部變數*/
clrscr();
gotoxy(12,3);
puts("Welcome to use Turbo C2.0!");
gotoxy(15, 13);
printf("<Esc>--Exit");
gotoxy(15, 15);
printf("<CR>--Continue");
while(1)
{
a=getch();
if(a==27)
break;
if(a==13)
{
lgc();
if(answer=='y'||answer=='Y')
{
gotoxy(23,14);
puts("Please Write to the Company");
getch();
break;
}
}
}
return(0);
}
void lgc(void)
{
clrscr();
gotoxy(12,8);
printf("The Excellent Selection!");
gotoxy(21,12);
printf("Do you have any question?(Y/N)");
answer=getche();
}
由例子程序可以看出, Turbo C源程序主要有以下幾個特點:
1. 程序一般用小寫字母書寫;
2. 大多數語句結尾必須要用";"作為終止符, 否則Turbo C 不認為該語句結
束;
3. 每個程序必須有一個而且只能有一個稱作主函數的main()函數;
4. 每個程序體 (主函數和每個子函數, 如上例中的main()函數和sub()函數)
必須用一對花括弧"{"和"}"括起來;
5. 一個較完整的程序大致包括:包含文件(一組#include<*.h>語句)、用戶
函數說明部分、全程變數定義、主函數和若乾子函數組成。在主函數和子函數中
又包括局部變數定義、若干個Turbo C庫函數、控制流程語句、 用戶函數的調用
語句等;
6. 注釋部分包含在"/*"和"*/"之間, 在編譯時它被Turbo C編譯器忽略。
說明:
1. 象其它一些語言一樣, Turbo C的變數在使用之前必須先定義其數據類型,
未經定義的變數不能使用。定義變數類型應在可執行語句前面, 如上例main()函
數中的第一條語句就是變數定義語句, 它必須放在第一各執行語句clrscr()前面。
2. 在Turbo C中, 大、小寫字母是有區別的, 相同字母的大、小寫代表不同
的變數。
3. Turbo C程序的書寫格式非常靈活, 沒有嚴格限制。
例1的主函數可寫成:
main(){char c; clrscr(); gotoxy(12,3);
puts("Welcome to use Turbo C2.0!"); gotoxy(15,13);
printf("<CR>--Continue"); gotoxy(15,15);...}
這樣寫語法上沒有錯誤, 但閱讀起來不方便, 同時也使得程序層次不明確。
作者建議用Turbo C編程時, 一行一條語句, 遇到嵌套語句向後縮進, 必要時對
程序加上注釋行。這樣可以便程序結構清楚、易於閱讀、維護和修改。
通過以上介紹, 可以得出Turbo C源程序的一般形式為:
包含文件
子函數類型說明
全程變數定義
main()
{
局部變數定義
<程序體>
}
sub1()
{
局部變數定義
<程序體>
}
sub2()
{
局部變數定義
<程序體>
}
.
.
.
subN()
{
局部變數定義
<程序體>
}
其中sub1(), ..., subN()代表用戶定義的子函數, 程序體指Turbo C 2.0
提供的任何庫函數調用語句、控制流程語句或其它用子函數調用語句等。
整型(int)
一、整型數說明
加上不同的修飾符, 整型數有以下幾種類型;
signed short int 有符號短整型數說明。簡寫為short或int, 字長為2
位元組共16位二進制數, 數的范圍是-32768~32767。
signed long int 有符號長整型數說明。簡寫為long, 字長為4位元組共
32位二進制數, 數的范圍是-2147483648~2147483647。
unsigned short int 無符號短整型數說明。簡寫為unsigned int, 字長
為2位元組共16位二進制數, 數的范圍是0~65535。
unsigned long int 無符號長整型數說明。簡寫為unsigned long, 字長
為4位元組共32位二進制數, 數的范圍是0~4294967295。
二、整型變數定義
可以用下列語句定義整型變數
int a, b; /*a、b被定義為有符號短整型變數*/
unsigned long c; /*c被定義為無符號長整型變數*/
三、整型常數表示
按不同的進制區分, 整型常數有三種表示方法:
十進制數: 以非0開始的數
如:220, -560, 45900
八進制數: 以0開始的數
如:06; 0106, 05788
十六進制數:以0X或0x開始的數
如:0X0D, 0XFF, 0x4e
另外, 可在整型常數後添加一個"L"或"l"字母表示該數為長整型數, 如22L,
0773L, 0Xae4l。
2.2 浮點型(float)
一、浮點數說明
Turbo C中有以下兩種類型的浮點數:
float 單浮點數。字長為4 個位元組共32 位二進制數, 數的范圍是
3.4x10-38E~3.4x10+38E。
double 雙浮點數。字長為 8個位元組共 64 位二進制數, 數的范圍是
1.7x10-308E~1.7x10+308E。
說明:
浮點數均為有符號浮點數, 沒有無符號浮點數。
二、浮點型變數定義
可以用下列語句定義浮點型變數:
float a, f; /*a, f被定義為單浮點型變數*/
double b; /*b被定義為雙浮點型變數*/
三、浮點常數表示
例如: +29.56, -56.33, -6.8e-18, 6.365
說明:
1. 浮點常數只有一種進制(十進制)。
2. 所有浮點常數都被默認為double。
3. 絕對值小於1的浮點數, 其小數點前面的零可以省略。如:0.22可寫為.22,
-0.0015E-3可寫為-.0015E-3。
4. Turbo C默認格式輸出浮點數時, 最多隻保留小數點後六位。
2.3 字元型(char)
加上不同的修飾符, 可以定義有符號和無符號兩種類型的字元型變數, 例如:
char a: /*a被定義為有符號字元變數*/
unsigned char l; /*l被定義為無符號字元變數*/
字元在計算機中以其ASCII碼方式表示, 其長度為1個位元組, 有符號字元型數
取值范圍為-128~127, 無符號字元型數到值范圍是0~255。因此在Turbo C語言中,
字元型數據在操作時將按整型數處理, 如果某個變數定義成char, 則表明該變數
是有符號的, 即它將轉換成有符號的整型數。
Turbo C中規定對ASCII碼值大於0x80的字元將被認為是負數。例如ASCII 值
為0x8c的字元, 定義成char時, 被轉換成十六進制的整數0xff8c 。 這是因當
ASCII碼值大於0x80時, 該位元組的最高位為1, 計算機會認為該數為負數, 對於
0x8c表示的數實際上是-74(8c的各位取反再加1), 而-74 轉換成兩位元組整型數並
在計算機中表示時就是0xff8c( 對0074 各位取反再加1) 。 因此只有定義為
unsigned char 0x8c轉換成整型數時才是8c。這一點在處理大於0x80的ASCII碼
字元時(例如漢字碼)要特別注意。一般漢字均定義為unsigned char(在以後的程
序中會經常碰到)。
另外, 也可以定義一個字元型數組(關於數組後面再作詳細介紹), 此時該數
組表示一個字元串。
例如:
char str[10];
計算機在編譯時, 將留出連續10個字元的空間, 即str[0]到str[9]共10個變
量, 但只有前9個供用戶使用。第10個str[9]用來存放字元串終止符NULL即"\0",
但終止符是編編譯程序自動加上的, 這一點應特別注意。
二、字元常數表示
能用符號表示的字元可直接用單引號括起來表示, 如'a', '9', 'Z', 也可用
該字元的ASCII碼值表示, 例如十進制數85表示大寫字母'U', 十六進制數0x5d表示
']', 八進制數0102表示大寫字母'B'。
一些不能用符號表示的控制符, 只能用ASCII碼值來表示, 如十進制數10 表示
換行, 下六進制數0x0d表示回車, 八進制數033表示Esc。Turbo C2.0中也有另外一
種表示表示方法, 如'\033'表示Esc, 這里'\ 0' 符號後面的數字表示十六進制的
ASCII值當然這種表示方法也適用於可睦接用符號表示的字元。
另外, Turbo C2.0中有些常用的字元用以下特殊規定來表示:
規定符 等價於 含義
'\f' '\X0C' 換頁
'\r' '\X0D' 回車
'\t' '\X09' 製表鍵
'\n' '\X0A' 換行
'\\' '\X5C' \符
'\'' '\X27' '符
'\"' '\X22' "符
對於字元串常量, 一般用雙引號括起來表示, 如"Hello Turbo C2.0"。
2.4 指針型(*)
指針是一種特殊的數據類型, 在其它語言中一般沒有。指針是指向變數的地址,
實質上指針就是存貯單元的地址。 根據所指的變數類型不同, 可以是整型指針
(int *)、浮點型指針(float *)、字元型指針(char *)、結構指針(struct *)和聯
合指針(union *)(結構指針和聯合指針將在第4節中介紹)。
2.5 無值型(void)
無值型位元組長度為0, 主要有兩個用途: 一是明確地表示一個函數不返回任何
值; 一是產生一個同一類型指針(可根據需要動態分配給其內存)。
例如:
void *buffer; /*buffer被定義為無值型指針*/
關鍵字
所謂關鍵字就是已被Turbo C2.0本身使用, 不能作其它用途使用的字。例如關
鍵字不能用作變數名、函數名等。
Turbo C2.0有以下關鍵字:
Turbo C2.0擴展的共11個
asm _cs _ds _es _ss cdecl
far near huge interrupt pascal
由ANSI標準定義的共32個
auto double int struct break else
long switch case enum register typedef
char extern return union const float
short unsigned continue for signed void
default goto sizeof volatile do if
while static
3.2 標識符
所謂標識符是指常量、變數、語句標號以及用戶自定義函數的名稱。 Turbo C
2.0標識符的定義十分靈活。作為標識符必須滿足以下規則:
1. 所有標識符必須由一個字母(a~z, A~Z)或下劃線(_)開頭;
2. 標識符的其它部分可以用字母、下劃線或數字(0~9)組成;
3. 大小寫字母表示不同意義, 即代表不同的標識符;
4. 標識符只有前32個字元有效;
5. 標識符不能使用Turbo C2.0的關鍵字。
下面舉出幾個正確和不正確的標識符:
正確 不正確
smart 5smart
_decision bomb?
key_board key.board
FLOAT float
變數說明
Turbo C2.0規定所有變數在使用前都必須中以說明。一條變數說明語句由數據
類型和其後的一個或多個變數名組成。變數說明的形式如下:
類型 <變數表>;
這里類型是指Turbo C2.0的有效數據類型。變數表是一個或多個標識符名, 每
個標識符之間用","分隔。
例如:
int i, j, k; unsigned char c, str[5], *p;
4.2 變數種類
變數可以在程序中三個地方說明: 函數內部、函數的參數定義中或所有的函數
外部。根據所定義位置的不同, 變數可分為局部變數、形式參數和全程變數。
一、局部變數
局部變數是指在函數內部說明的變數(有時也稱為自動變數)。用關鍵字auto進
行說明, 當auto省略時, 所有的非全程變數都被認為是局部變數, 所以auto實際上
從來不用。
局部變數在函數調用時自動產生, 但不會自動初始化, 隨函數調用的結束, 這
個變數也就自動消失了, 下次調用此函數時再自動產生, 還要再賦值, 退出時又自
動消失。
二、形式參數
形式參數是指在函數名後面的小括弧里定義的變數, 用於接受來自調用函數的
參數。形式參數在函數內部可以象其它局部變數那樣來作用。
例如:
puthz(int x, int y, int color, char *p)
{
int i, j, k; /*定義局部變數*/
<程序體>
}
其中x, y, color, *p為函數的形式參數, 不需要再進行說明就可在該函數內
直使用。
三、全程變數
全程變數是指在所有函數之外說明的變數, 它在整個程序內部者是"可見的",
可以被任何一個函數使用, 並且在整個程序的運行中都保留其值。全程變數只要滿
足在使用它以前和函數以外這兩個條件, 可在程序的任何位置進行說明, 習慣上通
常在程序的主函數前說明。
例如:
#include<stdio.h>
int test; /*定義全程變數*/
void f1(int x, float y); /*子函數說明*/
void f2(void); /*子函數說明*/
main()
{
test=5; /*給全程變數賦值*/
f1(20, 5.5); /*調用有形式參數的子函數f1()*/
/*test的值變成115*/
f2(); /*調用f2(), test的值變為1150*/
}
void f1(int x, float y)
{
float z; /*z定義為局部變數*/
z=x*y; /*計算*/
test=test+z;
}
void f2(void)
{
int count=10; /*定義局部變數並初始化*/
test=test*count;
}
由於全程變數可被整個程序內的任何一個函數使用, 所以可作為函數之間傳遞
參數的手段, 但全程變數太多時, 內存開銷變大。
4.3 變數存儲類型
Turbo C2.0支持四種變數存儲類型。說明符如下:
auto static extern register
下面分別來介紹。
一、auto
auto稱為自動變數, 已在前面作了介紹, 這里不再重復。
二、static
static稱為靜態變數。根據變數的類型可以分為靜態局部變數和靜態全程變數。
1. 靜態局部變數
它與局部變數的區別在於: 在函數退出時, 這個變數始終存在, 但不能被其它
函數使用, 當再次進入該函數時, 將保存上次的結果。其它與局部變數一樣。
2. 靜態全程變數
Turbo C2.0允許將大型程序分成若干獨立模塊文件分別編譯, 然後將所有模塊
的目標文件連接在一起, 從而提高編譯速度, 同時也便於軟體的管理和維護。靜態
全程變數就是指只在定義它的源文件中可見而在其它源文件中不可見的變數。它與
全程變數的區別是: 全程變數可以再說明為外部變數(extern), 被其它源文件使用,
而靜態全程變數卻不能再被說明為外部的, 即只能被所在的源文件使用。
三、extern
extern稱為外部變數。為了使變數除了在定義它的源文件中可以使用外, 還要
被其它文件使用。因此, 必須將全程變數通知每一個程序模塊文件, 此時可用
extern來說明。
例如:
文件1為file1.c 文件2為file2.c
int i, j;/*定義全程變數*/ extern int i, j;/*說明將i, j從
文件1中復制過來*/
char c; extern char c; /*將c復制過來*/
void func1(int k); func2() /*用戶定義函數*/
{
main() static float k;/*定義靜態變數*/
{ i=j*5/100;
func1(20);/*調用函數*/ k=i/1.5;
func2(); .
. .
. .
. }
}
func1(int k) /*用戶定義函數*/
{
j=k*100;
}
對於以上兩個文件file1.c和file2.c, 用Turbo C2.0的集成開發環境進行編譯
連接時, 首先應建立一個.prj的文件。例如file.prj, 該文件內容如下:
file1.c
file2.c
然後將file.prj的文件名寫入主菜單Project中的Project Name項中。 再用F9
編譯連接, 就可產生一個文件名為fioe.exe的可執行文件。
外部變數和FORTRAN語言中的COMMOM定義的公共變數一樣。
四、register
register稱為寄存器變數。它只能用於整型和字元型變數。定義符register說
明的變數被Turbo C2.0存儲在CPU的寄存器中, 而不是象普通的變數那樣存儲在內
存中, 這樣可以提高運算速度。但是Turbo C2.0隻允許同時定義兩個寄存器變數,
一旦超過兩個, 編譯程序會自動地將超過限制數目的寄存器變數當作非寄存器變數
來處理。因此, 寄存器變數常用在同一變數名頻繁出現的地方。
另外, 寄存器變數只適用於局部變數和函數的形式參數, 它屬於auto型變數,
因此, 不能用作全程變數。定義一個整型寄存器變數可寫成:
register int a;
對於以上所介紹的變數類型和變數存儲類型將會在以後的學習中, 通過例行程
序中的定義、使用來逐漸加深理解。
4.4 數組變數
所謂數組就是指具有相同數據類型的變數集, 並擁有共同的名字。數組中的每
個特定元素都使用下標來訪問。數組由一段連續的存貯地址構成, 最低的地址對應
於第一個數組元素, 最高的地址對應最後一個數組元素。數組可以是一維的、也可
以是多維的。Turbo C2.0象它高級語方一樣也使用數組變數。
一、一維數組
一維數組的說明格式是:
類型 變數名[長度];
類型是指數據類型, 即每一個數組元素的數據類型, 包括整數型、浮點型、字
符型、指針型以及結構和聯合。
例如:
int a[10];
unsigned long a[20];
char *s[5];
char *f[];
一個學計算機的就這么牛?我是軟體工程師,弟弟!
B. 什麼叫C語言
C語言是目前世界上流行、使用最廣泛的高級程序設計語言。
C語言對操作系統和系統使用程序以及需要對硬體進行操作的場合,用C語言明顯優於其它高級語言,許多大型應用軟體都是用C語言編寫的。
C語言具有繪圖能力強,可移植性,並具備很強的數據處理能力,因此適於編寫系統軟體,三維,二維圖形和動畫它是數值計算的高級語言。
常用的編譯軟體有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,等等......
C語言的發展歷史
C語言的發展頗為有趣。它的原型ALGOL 60語言。
1963年,劍橋大學將ALGOL 60語言發展成為CPL(Combined Programming Language)語言。
1967年,劍橋大學的Matin Richards 對CPL語言進行了簡化,於是產生了BCPL語言。
1970年,美國貝爾實驗室的Ken Thompson將BCPL進行了修改,並為它起了一個有趣的名字「B語言」。意思是將CPL語言煮干,提煉出它的精華。並且他用B語言寫了第一個UNIX操作系統。
而在1973年,B語言也給人「煮」了一下,美國貝爾實驗室的D.M.RITCHIE在B語言的基礎上最終設計出了一種新的語言,他取了BGPL的第二個字母作為這種語言的名字,這就是C語言。
為了使UNIX操作系統推廣,1977年Dennis M.Ritchie 發表了不依賴於具體機器系統的C語言編譯文本《可移植的C語言編譯程序》。
1978年Brian W.Kernighian和Dennis M.Ritchie出版了名著《The C Programming Language》,從而使C語言成為目前世界上流行最廣泛的高級程序設計語言。
1988年,隨著微型計算機的日益普及, 出現了許多C語言版本。由於沒有統一的標准,使得這些C語言之間出現了一些不一致的地方。為了改變這種情況,美國國家標准研究所(ANSI)為C語言制定了一套ANSI標准, 成為現行的C語言標准 3.C語言的主要特點 。C語言發展迅速, 而且成為最受歡迎的語言之一, 主要因為它具有強大的功能。許多著名的系統軟體, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 語言編寫的。用C語言加上一些匯編語言子程序, 就更能顯示C語言的優勢了,象PC- DOS 、WORDSTAR等就是用這種方法編寫的。
C語言的特點
1. 簡潔緊湊、靈活方便
C語言一共只有32個關鍵字,9種控制語句,程序書寫自由,主要用小寫字母表示。它把高級語言的基本結構和語句與低級語言的實用性結合起來。 C 語言可以象匯編語言一樣對位、位元組和地址進行操作, 而這三者是計算機最基本的工作單元。
2. 運算符豐富
C的運算符包含的范圍很廣泛,共有種34個運算符。C語言把括弧、賦值、強制類型轉換等都作為運算符處理。從而使C的運算類型極其豐富表達式類型多樣化,靈活使用各種運算符可以實現在其它高級語言中難以實現的運算。
3. 數據結構豐富
C的數據類型有:整型、實型、字元型、數組類型、指針類型、結構體類型、共用體類型等。能用來實現各種復雜的數據類型的運算。並引入了指針概念,使程序效率更高。另外C語言具有強大的圖形功能, 支持多種顯示器和驅動器。且計算功能、邏輯判斷功能強大。
4. C是結構式語言
結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰, 便於使用、維護以及調試。C語言是以函數形式提供給用戶的,這些函數可方便的調用,並具有多種循環、條件語句控製程序流向,從而使程序完全結構化。
5. C語法限制不太嚴格、程序設計自由度大
一般的高級語言語法檢查比較嚴,能夠檢查出幾乎所有的語法錯誤。而C語言允許程序編寫者有較大的自由度。
6. C語言允許直接訪問物理地址,可以直接對硬體進行操作
因此既具有高級語言的功能,又具有低級語言的許多功能,能夠象匯編語言一樣對位、位元組和地址進行操作,而這三者是計算機最基本的工作單元,可以用來寫系統軟體。
7. C語言程序生成代碼質量高,程序執行效率高
一般只比匯編程序生成的目標代碼效率低10へ20%。
8. C語言適用范圍大,可移植性好
C語言有一個突出的優點就是適合於多種操作系統, 如DOS、UNIX,也適用於多種機型。
C. c語言中5!什麼意思
在C語言中,「!」是邏輯非的運算符。「!5」是邏輯運算表達式。它是對後面的邏輯值取「反」運算。如:後面是真,則進行非運算後的值是假。
在C語言中,任何非0數字都解釋為邏輯真,所以,數字5的邏輯值是真。這樣,「!5」的運算就是「非真」,結果當然就是「假」了。
在C語言中,規定用「1」代表邏輯真,用「0」代表邏輯假。所以,「!5」的值——邏輯假——就用「0」代表了。「!5」在C語言中的意思是「邏輯假」,它的值為0。
C語言數組的特點
1、數組是相同數據類型的元素的集合。
2、數組中的各元素的存儲是有先後順序的,它們在內存中按照這個先後順序連續存放在一起。
3、數組元素用整個數組的名字和它自己在數組中的順序位置來表示。例如,a[0]表示名字為a的數組中的第一個元素,a[1]代表數組a的第二個元素,以此類推。
D. 什麼是C語言
C語言是一種計算機程序設計語言。它既有高級語言的特點,又具有匯編語言的特點。它可以作為系統設計語言,編寫工作系統應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬體的應用程序。因此,它的應用范圍廣泛。
C語言對操作系統和系統使用程序以及需要對硬體進行操作的場合,用C語言明顯優於其它解釋型高級語言,有一些大型應用軟體也是用C語言編寫的。
C語言具有繪圖能力強,可移植性,並具備很強的數據處理能力,因此適於編寫系統軟體,三維,二維圖形和動畫。它是數值計算的高級語言。
常用的C語言IDE(集成開發環境)有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語言的發展歷史
C語言的原型ALGOL 60語言。(也稱為A語言)
1963年,劍橋大學將ALGOL 60語言發展成為CPL(Combined Programming Language)語言。
1967年,劍橋大學的Matin Richards 對CPL語言進行了簡化,於是產生了BCPL語言。
1970年,美國貝爾實驗室的Ken Thompson將BCPL進行了修改,並為它起了一個有趣的名字「B語言」。意思是將CPL語言煮干,提煉出它的精華。並且他用B語言寫了第一個UNIX操作系統。
而在1973年,B語言也給人「煮」了一下,美國貝爾實驗室的D.M.RITCHIE在B語言的基礎上最終設計出了一種新的語言,他取了BCPL的第二個字母作為這種語言的名字,這就是C語言。
為了使UNIX操作系統推廣,1977年Dennis M.Ritchie 發表了不依賴於具體機器系統的C語言編譯文本《可移植的C語言編譯程序》。即是著名的ANSI C。
1978年Brian W.Kernighian和Dennis M.Ritchie出版了名著《C語言程序》(The C Programming Language),從而使C語言成為當時世界上流行最廣泛的高級程序設計語言。
1988年,隨著微型計算機的日益普及, C語言出現了許多版本。由於沒有統一的標准,使得這些C語言之間出現了一些不一致的地方。為了改變這種情況,美國國家標准研究所(ANSI)為C語言制定了一套ANSI標准, 成為現行的C語言標准3.C語言的主要特點 。C語言發展迅速, 而且成為最受歡迎的語言之一, 主要因為它具有強大的功能。許多著名的系統軟體, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 語言編寫的。用C語言加上一些匯編語言子程序, 就更能顯示C語言的優勢了,象PC- DOS 、WORDSTAR等就是用這種方法編寫的。
C語言的優點
1. 簡潔緊湊、靈活方便
C語言一共只有32個關鍵字,9種控制語句,程序書寫自由,主要用小寫字母表示。它把高級語言的基本結構和語句與低級語言的實用性結合起來。 C 語言可以象匯編語言一樣對位、位元組和地址進行操作, 而這三者是計算機最基本的工作單元。
2. 運算符豐富
C的運算符包含的范圍很廣泛,共有種34個運算符。C語言把括弧、賦值、強制類型轉換等都作為運算符處理。從而使C的運算類型極其豐富表達式類型多樣化,靈活使用各種運算符可以實現在其它高級語言中難以實現的運算。
3. 數據結構豐富
C的數據類型有:整型、實型、字元型、數組類型、指針類型、結構體類型、共用體類型等。能用來實現各種復雜的數據類型的運算。並引入了指針概念,使程序效率更高。另外C語言具有強大的圖形功能, 支持多種顯示器和驅動器。且計算功能、邏輯判斷功能強大。
4. C是結構式語言
結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰, 便於使用、維護以及調試。C語言是以函數形式提供給用戶的,這些函數可方便的調用,並具有多種循環、條件語句控製程序流向,從而使程序完全結構化。
5. C語法限制不太嚴格,程序設計自由度大
雖然C語言也是強類型語言,但它的語法比較靈活,允許程序編寫者有較大的自由度。
6. C語言允許直接訪問物理地址,可以直接對硬體進行操作
因此既具有高級語言的功能,又具有低級語言的許多功能,能夠象匯編語言一樣對位、位元組和地址進行操作,而這三者是計算機最基本的工作單元,可以用來寫系統軟體。
7. C語言程序生成代碼質量高,程序執行效率高
一般只比匯編程序生成的目標代碼效率低10へ20%。
8. C語言適用范圍大,可移植性好
C語言有一個突出的優點就是適合於多種操作系統, 如DOS、UNIX,也適用於多種機型。
C語言的缺點
1. C語言的缺點主要是表現在數據的封裝性上,這一點使得C在數據的安全性上做的有很大缺陷,這也是C和C++的一大區別。
2. C語言的語法限制不太嚴格,對變數的類型約束不嚴格,影響程序的安全性,對數組下標越界不作檢查等。從應用的角度,C語言比其他高級語言較難掌握。
[C語言指針]
指針就是C語言的一大特色,可以說C語言優於其它高級語言的一個重要原因就是因為它有指針操作可以直接進行靠近硬體的操作,但是C的指針操作也給它帶來了很多不安全的因素。C++在這方面做了很好的改進,在保留了指針操作的同時又增強了安全性。Java取消了指針操作,提高了安全性。
C源程序的結構特點
1.一個C語言源程序可以由一個或多個源文件組成。
2.每個源文件可由一個或多個函數組成。
3.一個源程序不論由多少個文件組成,都有一個且只能有一個main函數,即主函數。
4.源程序中可以有預處理命令(include 命令僅為其中的一種),預處理命令通常應放在源文件或源程序的最前面。
5.每一個說明,每一個語句都必須以分號結尾。但預處理命令,函數頭和花括弧「}」之後不能加分號。
6.標識符,關鍵字之間必須至少加一個空格以示間隔。若已有明顯的間隔符,也可不再加空格來間隔。
學習C語言
在初學C語言時,可能會遇到有些問題理解不透,或者表達方式與以往數學學習中不同(如運算符等),這就要求不氣餒,不明白的地方多問多想,鼓足勇氣進行學習,待學完後面的章節知識,前面的問題也就迎刃而解了,這一方面我感覺是我們同學最欠缺,大多學不好的就是因為一開始遇到困難就放棄,曾經和好多同學談他的問題,回答是聽不懂、不想聽、放棄這樣三個過程,我反問,這節課你聽過課嗎?回答又是沒有,根本就沒聽過課,怎麼說自己聽不懂呢?相應的根本就沒學習,又談何學的好?
學習C語言始終要記住「曙光在前頭」和「千金難買回頭看」,「千金難買回頭看」是學習知識的重要方法,就是說,學習後面的知識,不要忘了回頭弄清遺留下的問題和加深理解前面的知識,這是我們學生最不易做到的,然而卻又是最重要的。學習C語言就是要經過幾個反復,才能前後貫穿,積累應該掌握的C知識。
那麼,我們如何學好《C程序設計》呢?
一.學好C語言的運算符和運算順序
這是學好《C程序設計》的基礎,C語言的運算非常靈活,功能十分豐富,運算種類遠多於其它程序設計語言。在表達式方面較其它程序語言更為簡潔,如自加、自減、逗號運算和三目運算使表達式更為簡單,但初學者往往會覺的這種表達式難讀,關鍵原因就是對運算符和運算順序理解不透不全。當多種不同運算組成一個運算表達式,即一個運算式中出現多種運算符時,運算的優先順序和結合規則顯得十分重要。在學習中,只要我們對此合理進行分類,找出它們與我們在數學中所學到運算之間的不同點之後,記住這些運算也就不困難了,有些運算符在理解後更會牢記心中,將來用起來得心應手,而有些可暫時放棄不記,等用到時再記不遲。
先要明確運算符按優先順序不同分類,《C程序設計》運算符可分為15種優先順序,從高到低,優先順序為1 ~ 15,除第2、3級和第14級為從右至左結合外,其它都是從左至右結合,它決定同級運算符的運算順序.
二.學好C語言的四種程序結構
(1)順序結構
順序結構的程序設計是最簡單的,只要按照解決問題的順序寫出相應的語句就行,它的執行順序是自上而下,依次執行。
例如;a = 3,b = 5,現交換a,b的值,這個問題就好像交換兩個杯子水,這當然要用到第三個杯子,假如第三個杯子是c,那麼正確的程序為: c = a; a = b; b = c; 執行結果是a = 5,b = c = 3如果改變其順序,寫成:a = b; c = a; b = c; 則執行結果就變成a = b = c = 5,不能達到預期的目的,初學者最容易犯這種錯誤。 順序結構可以獨立使用構成一個簡單的完整程序,常見的輸入、計算,輸出三步曲的程序就是順序結構,例如計算圓的面積,其程序的語句順序就是輸入圓的半徑r,計算s = 3.14159*r*r,輸出圓的面積s。不過大多數情況下順序結構都是作為程序的一部分,與其它結構一起構成一個復雜的程序,例如分支結構中的復合語句、循環結構中的循環體等。
(2) 分支結構
順序結構的程序雖然能解決計算、輸出等問題,但不能做判斷再選擇。對於要先做判斷再選擇的問題就要使用分支結構。分支結構的執行是依據一定的條件選擇執行路徑,而不是嚴格按照語句出現的物理順序。分支結構的程序設計方法的關鍵在於構造合適的分支條件和分析程序流程,根據不同的程序流程選擇適當的分支語句。分支結構適合於帶有邏輯或關系比較等條件判斷的計算,設計這類程序時往往都要先繪制其程序流程圖,然後根據程序流程寫出源程序,這樣做把程序設計分析與語言分開,使得問題簡單化,易於理解。程序流程圖是根據解題分析所繪制的程序執行流程圖。
學習分支結構不要被分支嵌套所迷惑,只要正確繪制出流程圖,弄清各分支所要執行的功能,嵌套結構也就不難了。嵌套只不過是分支中又包括分支語句而已,不是新知識,只要對雙分支的理解清楚,分支嵌套是不難的。下面我介紹幾種基本的分支結構。
①if(條件)
{
分支體
}
這種分支結構中的分支體可以是一條語句,此時「{ }」可以省略,也可以是多條語句即復合語句。它有兩條分支路徑可選,一是當條件為真,執行分支體,否則跳過分支體,這時分支體就不會執行。如:要計算x的絕對值,根據絕對值定義,我們知道,當x>=0時,其絕對值不變,而x<0時其絕對值是為x的反號,因此程序段為:if(x<0) x=-x;
②if(條件)
{分支1}
else
{分支2}
這是典型的分支結構,如果條件成立,執行分支1,否則執行分支2,分支1和分支2都可以是1條或若干條語句構成。如:求ax^2+bx+c=0的根
分析:因為當b^2-4ac>=0時,方程有兩個實根,否則(b^2-4ac<0)有兩個共軛復根。其程序段如下:
d=b*b-4*a*c;
if(d>=0)
{x1=(-b+sqrt(d))/2a;
x1=(-b-sqrt(d))/2a;
printf(「x1=%8.4f,x2=%8.4f\n」,x1,x2);
}
else
{r=-b/(2*a);
i =sqrt(-d)/(2*a);
printf(「x1=%8.4f+%8.4fi\n」r, i);
printf(「x2=%8.4f-%8.4fi\n」r,i)
}
③嵌套分支語句:其語句格式為:
if(條件1) {分支1};
else if(條件2) {分支2}
else if(條件3) {分支3}
……
else if(條件n) {分支n}
else {分支n+1}
嵌套分支語句雖可解決多個入口和出口的問題,但超過3重嵌套後,語句結構變得非常復雜,對於程序的閱讀和理解都極為不便,建議嵌套在3重以內,超過3重可以用下面的語句。
④switch開關語句:該語句也是多分支選擇語句,到底執行哪一塊,取決於開關設置,也就是表達式的值與常量表達式相匹配的那一路,它不同if…else 語句,它的所有分支都是並列的,程序執行時,由第一分支開始查找,如果相匹配,執行其後的塊,接著執行第2分支,第3分支……的塊,直到遇到break語句;如果不匹配,查找下一個分支是否匹配。這個語句在應用時要特別注意開關條件的合理設置以及break語句的合理應用。
(3)循環結構:
循環結構可以減少源程序重復書寫的工作量,用來描述重復執行某段演算法的問題,這是程序設計中最能發揮計算機特長的程序結構,C語言中提供四種循環,即goto循環、while循環、do –while循環和for循環。四種循環可以用來處理同一問題,一般情況下它們可以互相代替換,但一般不提倡用goto循環,因為強制改變程序的順序經常會給程序的運行帶來不可預料的錯誤,在學習中我們主要學習while、do…while、for三種循環。常用的三種循環結構學習的重點在於弄清它們相同與不同之處,以便在不同場合下使用,這就要清楚三種循環的格式和執行順序,將每種循環的流程圖理解透徹後就會明白如何替換使用,如把while循環的例題,用for語句重新編寫一個程序,這樣能更好地理解它們的作用。特別要注意在循環體內應包含趨於結束的語句(即循環變數值的改變),否則就可能成了一個死循環,這是初學者的一個常見錯誤。
在學完這三個循環後,應明確它們的異同點:用while和do…while循環時,循環變數的初始化的操作應在循環體之前,而for循環一般在語句1中進行的;while 循環和for循環都是先判斷表達式,後執行循環體,而do…while循環是先執行循環體後判斷表達式,也就是說do…while的循環體最少被執行一次,而while 循環和for就可能一次都不執行。另外還要注意的是這三種循環都可以用break語句跳出循環,用continue語句結束本次循環,而goto語句與if構成的循環,是不能用break和 continue語句進行控制的。
順序結構、分支結構和循環結構並不彼此孤立的,在循環中可以有分支、順序結構,分支中也可以有循環、順序結構,其實不管哪種結構,我們均可廣義的把它們看成一個語句。在實際編程過程中常將這三種結構相互結合以實現各種演算法,設計出相應程序,但是要編程的問題較大,編寫出的程序就往往很長、結構重復多,造成可讀性差,難以理解,解決這個問題的方法是將C程序設計成模塊化結構。
(4)模塊化程序結構
C語言的模塊化程序結構用函數來實現,即將復雜的C程序分為若干模塊,每個模塊都編寫成一個C函數,然後通過主函數調用函數及函數調用函數來實現一大型問題的C程序編寫,因此常說:C程序=主函數+子函數。 因此,對函數的定義、調用、值的返回等中要尤其注重理解和應用,並通過上機調試加以鞏固。
三.掌握一些簡單的演算法
編程其實一大部分工作就是分析問題,找到解決問題的方法,再以相應的編程語言寫出代碼。這就要求掌握演算法,根據我們的《C程序設計》教學大綱中,只要求我們掌握一些簡單的演算法,在掌握這些基本演算法後,要完成對問題的分析就容易了。如兩個數的交換、三個數的比較、選擇法排序和冒泡法排序,這就要求我們要清楚這些演算法的內在含義
結語:當我們把握好上述幾方面後,只要同學們能克服畏難、厭學、上課能專心聽講,做好練習與上機調試,其實C語言並不難學
E. 什麼是C語言
C語言是目前世界上流行、使用最廣泛的高級程序設計語言。
C語言對操作系統和系統使用程序以及需要對硬體進行操作的場合,用C語言明顯優於其它高級語言,許多大型應用軟體都是用C語言編寫的。
C語言具有繪圖能力強,可移植性,並具備很強的數據處理能力,因此適於編寫系統軟體,三維,二維圖形和動畫它是數值計算的高級語言。
常用的編譯軟體有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語言的發展歷史
C語言的發展頗為有趣。它的原型ALGOL 60語言。(也成為A語言)
1963年,劍橋大學將ALGOL 60語言發展成為CPL(Combined Programming Language)語言。
1967年,劍橋大學的Matin Richards 對CPL語言進行了簡化,於是產生了BCPL語言。
1970年,美國貝爾實驗室的Ken Thompson將BCPL進行了修改,並為它起了一個有趣的名字「B語言」。意思是將CPL語言煮干,提煉出它的精華。並且他用B語言寫了第一個UNIX操作系統。
而在1973年,B語言也給人「煮」了一下,美國貝爾實驗室的D.M.RITCHIE在B語言的基礎上最終設計出了一種新的語言,他取了BGPL的第二個字母作為這種語言的名字,這就是C語言。
為了使UNIX操作系統推廣,1977年Dennis M.Ritchie 發表了不依賴於具體機器系統的C語言編譯文本《可移植的C語言編譯程序》。
1978年Brian W.Kernighian和Dennis M.Ritchie出版了名著《The C Programming Language》,從而使C語言成為目前世界上流行最廣泛的高級程序設計語言。
1988年,隨著微型計算機的日益普及, 出現了許多C語言版本。由於沒有統一的標准,使得這些C語言之間出現了一些不一致的地方。為了改變這種情況,美國國家標准研究所(ANSI)為C語言制定了一套ANSI標准, 成為現行的C語言標准 3.C語言的主要特點 。C語言發展迅速, 而且成為最受歡迎的語言之一, 主要因為它具有強大的功能。許多著名的系統軟體, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 語言編寫的。用C語言加上一些匯編語言子程序, 就更能顯示C語言的優勢了,象PC- DOS 、WORDSTAR等就是用這種方法編寫的。
C語言的特點
1. 簡潔緊湊、靈活方便
C語言一共只有32個關鍵字,9種控制語句,程序書寫自由,主要用小寫字母表示。它把高級語言的基本結構和語句與低級語言的實用性結合起來。 C 語言可以象匯編語言一樣對位、位元組和地址進行操作, 而這三者是計算機最基本的工作單元。
2. 運算符豐富
C的運算符包含的范圍很廣泛,共有種34個運算符。C語言把括弧、賦值、強制類型轉換等都作為運算符處理。從而使C的運算類型極其豐富表達式類型多樣化,靈活使用各種運算符可以實現在其它高級語言中難以實現的運算。
3. 數據結構豐富
C的數據類型有:整型、實型、字元型、數組類型、指針類型、結構體類型、共用體類型等。能用來實現各種復雜的數據類型的運算。並引入了指針概念,使程序效率更高。另外C語言具有強大的圖形功能, 支持多種顯示器和驅動器。且計算功能、邏輯判斷功能強大。
4. C是結構式語言
結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰, 便於使用、維護以及調試。C語言是以函數形式提供給用戶的,這些函數可方便的調用,並具有多種循環、條件語句控製程序流向,從而使程序完全結構化。
5. C語法限制不太嚴格、程序設計自由度大
一般的高級語言語法檢查比較嚴,能夠檢查出幾乎所有的語法錯誤。而C語言允許程序編寫者有較大的自由度。
6. C語言允許直接訪問物理地址,可以直接對硬體進行操作
因此既具有高級語言的功能,又具有低級語言的許多功能,能夠象匯編語言一樣對位、位元組和地址進行操作,而這三者是計算機最基本的工作單元,可以用來寫系統軟體。
7. C語言程序生成代碼質量高,程序執行效率高
一般只比匯編程序生成的目標代碼效率低10へ20%。
8. C語言適用范圍大,可移植性好
C語言有一個突出的優點就是適合於多種操作系統, 如DOS、UNIX,也適用於多種機型。
當然,C語言也有自身的不足,比如:C語言的語法限制不太嚴格,對變數的類型約束不嚴格,影響程序的安全性,對數族下標越界不作檢查等。從應用的角度,C語言比其他高級語言較難掌握。
總之,C語言既有高級語言的特點,又具有匯編語言的特點;既是一個成功的系統設計語言,有時一個使用的程序設計語言;既能用來編寫不依賴計算機硬體的應用程序,又能用來編寫各種系統程序;是一種受歡迎、應用廣泛的程序設計語言。
F. C語言 這個5是什麼意思
5表示寬度,也就是說這個程序輸出是『1234567890』,當程序的輸出與寬度不一致時,會按著程序自己的輸出而輸出,5在這里就不會有作用了
G. c語言是什麼
C語言是一種結構化語言,它有著清晰的層次,可按照模塊的方式對程序進行編寫,十分有利於程序的調試,且c語言的處理和表現能力都非常的強大,依靠非常全面的運算符和多樣的數據類型,可以輕易完成各種數據結構的構建,通過指針類型更可對內存直接定址以及對硬體進行直接操作,因此既能夠用於開發系統程序,也可用於開發應用軟體。
通過對C語言進行研究分析,總結出其主要特點如下:
(1)簡潔的語言
C語言包含的各種控制語句僅有9種,關鍵字也只有32個,程序的編寫要求不嚴格且以小寫字母為主,對許多不必要的部分進行了精簡。實際上,語句構成與硬體有關聯的較少,且C語言本身不提供與硬體相關的輸入輸出、文件管理等功能,如需此類功能,需要通過配合編譯系統所支持的各類庫進行編程,故c語言擁有非常簡潔的編譯系統。[5]
(2)具有結構化的控制語句
C語言是一種結構化的語言,提供的控制語句具有結構化特徵,如for語句、if...else語句和switch語句等。可以用於實現函數的邏輯控制,方便麵向過程的程序設計。[5]
(3)豐富的數據類型
C語言包含的數據類型廣泛,不僅包含有傳統的字元型、整型、浮點型、數組類型等數據類型,還具有其他編程語言所不具備的數據類型,其中以指針類型數據使用最為靈活,可以通過編程對各種數據結構進行計算。[5]
(4)豐富的運算符
C語言包含34個運算符,它將賦值、括弧等均視作運算符來操作,使C程序的表達式類型和運算符類型均非常豐富。[5]
(5)可對物理地址進行直接操作
C語言允許對硬體內存地址進行直接讀寫,以此可以實現匯編語言的主要功能,並可直接操作硬體。C語言不但具備高級語言所具有的良好特性,又包含了許多低級語言的優勢,故在系統軟體編程領域有著廣泛的應用。[5]
(6)代碼具有較好的可移植性
C語言是面向過程的編程語言,用戶只需要關注所被解決問題的本身,而不需要花費過多的精力去了解相關硬體,且針對不同的硬體環境,在用C語言實現相同功能時的代碼基本一致,不需或僅需進行少量改動便可完成移植,這就意味著,對於一台計算機編寫的C程序可以在另一台計算機上輕松地運行,從而極大的減少了程序移植的工作強度。[5]
(7)可生成高質量、目標代碼執行效率高的程序
與其他高級語言相比,C語言可以生成高質量和高效率的目標代碼,故通常應用於對代碼質量和執行效率要求較高的嵌入式系統程序的編寫。[5]
H. C語言是什麼意思
C語言是一門通用計算機編程語言,廣泛應用於底層開發。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。
二十世紀八十年代,為了避免各開發廠商用的C語言語法產生差異,由美國國家標准局為C語言制定了一套完整的美國國家標准語法,稱為ANSI C,作為C語言最初的標准。
目前2011年12月8日,國際標准化組織(ISO)和國際電工委員會(IEC)發布的C11標準是C語言的第三個官方標准,也是C語言的最新標准,該標准更好的支持了漢字函數名和漢字標識符,一定程度上實現了漢字編程。
C語言是一門面向過程的計算機編程語言,與C++,Java等面向對象的編程語言有所不同。
其編譯器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
(8)c語言是什麼5擴展閱讀:
C語言的優勢:
1.相比較其他的編程語言(像C++,JAVA),C語言是個低級語言。從總體上來說,低級的編程語言可以讓你更好的了解計算機。
2.設備驅動程序和操作系統只能用C語言來編寫。現在,你可能還從來沒有編寫過一個設備驅動程序或者一個操作系統,但是如果你需要去修改他們的時候,怎麼辦?
3.如果你想要得到一份編寫微控制器程序的工作的時候,該怎麼辦?他們都是用C語言編寫的。就因為不想學習一門新的語言,你就准備限制你能得到工作的機會嗎?
4.C的程序比其他用別的語言寫的程序,實現相同的功能,它用的代碼行數更少,而它帶來的運行效率更快。有時候,你的程序所需要的速度,只有C語言能做到。
5.如果你學習過C語言,你就能學習現在任何的高級編程語言。因為所有的高級語言都是以C語言為基礎的(像JAVA,C++,C#等等)。
6.因為C語言已經存在很多年了,它有廣泛的使用團體並且有大量的現成代碼可以利用。這就使你能在過去程序的基礎上,快速和高效的編寫新的演算法和函數。
7.C語言是一個開源組織的語言。一個開源組織的產物--LINUX,就是用C語言寫的。如果你會C語言,你就能參加這個組織並且還能向眾多的開源組織投稿,比如參加Source Forge並且給他們投稿。
8.C語言是唯一一個向你闡述指針的本質的語言。而C#和Java乾脆跳過了指針這個題目。可是指針確實使C語言變得更加強大。
9.找編程開發方面的工作時,C語言仍然是最普遍需要的語言。所以它值得你花時間去學會它。
10.任何裡面有微處理器的設備都支持C語言。從微波爐到手機,都是由C語言技術來推動的。