一種是用戶自定義函數(shù),就是自己根據(jù)功能的需要自己編寫的函數(shù);另一種是系統(tǒng)自帶的函數(shù),如sqrt(x)函數(shù) (就是求x的二次方根),這樣的可以直接用,前提是得在頭文件中把它們包含進去。
創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比光明網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式光明網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋光明地區(qū)。費用合理售后完善,10多年實體公司更值得信賴。
在編程領(lǐng)域中,C語言的運用非常之多,它兼顧了高級語言的匯編語言的優(yōu)點,相較于其它編程語言具有較大優(yōu)勢。計算機系統(tǒng)設(shè)計以及應(yīng)用程序編寫是C語言應(yīng)用的兩大領(lǐng)域。同時,C語言的普適較強,在許多計算機操作系統(tǒng)中都能夠得到適用,且效率顯著。
擴展資料:
C語言包含有各種控制語句僅有9種,關(guān)鍵字也只有32 個,程序的編寫要求不嚴格且多以小寫字母為主,對許多不必要的部分進行了精簡。
實際上,語句構(gòu)成與硬件有關(guān)聯(lián)的較少,且C語言本身不提供與硬件相關(guān)的輸入輸出、文件管理等功能,如需此類功能,需要通過配合編譯系統(tǒng)所支持的各類庫進行編程,故c語言擁有非常簡潔的編譯系統(tǒng)。
如果一個變量名后面跟著一個有數(shù)字的中括號,這個聲明就是數(shù)組聲明。字符串也是一種數(shù)組。它們以ASCII的NULL作為數(shù)組的結(jié)束。要特別注意的是,方括內(nèi)的索引值是從0算起的。
參考資料來源:百度百科-c語言
參考資料來源:百度百科--C語言函數(shù)
在函數(shù)體內(nèi)聲明的變量在默認情況下都是auto存儲類型
在代碼塊之間傳遞信息的一種方法就是使用外部變量。當(dāng)一個變量在函數(shù)的外部被聲明時,安的存儲空間是永久分配的,安人存儲類型是extren.外部變量的聲明看上去和函數(shù)或代碼塊內(nèi)部所聲明的變量一樣。外部變量對于它之后的所有函數(shù)都有效。在代碼塊或函數(shù)后,外部變量仍然存在。
static的基本用途是允許一個局部變量在重新進入代碼塊時能夠保持原來的值。這和自動變量形成了鮮明的對比,自動變量在代碼塊時會被銷毀,再次進入這個代碼塊時,它必須重新進行初始化。
register存儲類型告訴編譯器相關(guān)的變量應(yīng)該改量存儲在高速度的寄存器中。使用register存儲類型的目的一般是為了提高執(zhí)行速度,但是,register聲明只是向編譯器所提出的“建議”,并非強制要求。
int。C語言規(guī)定:在定義函數(shù)時,若其返回值類型為int,則可以默認。
C語言函數(shù)有三類,分為外部函數(shù)、靜態(tài)函數(shù)、內(nèi)聯(lián)函數(shù),其中前兩種是C89標準支持,第三種是C99標準增加的。
1、外部函數(shù)
這類函數(shù)是默認的函數(shù)類型,基本上平時我們使用的就是這種函數(shù),聲明有以下兩種方式,例如:
// 使用extern關(guān)鍵字,顯示聲明
extern int add(int a, int b);
// 或省略關(guān)鍵字extern,編譯器也會自動認為是extern
int add(int a, int b);
外部函數(shù)表明在當(dāng)前聲明和定義的代碼文件中可以使用,也可以在其它代碼文件中可以通過#include指令包含使用,對外部的代碼可見。
2、靜態(tài)函數(shù)
這類函數(shù)其實與外部函數(shù)相對的,因為需要使用static關(guān)鍵字修飾,因此稱為靜態(tài)函數(shù),其實就是內(nèi)部函數(shù)。聲明方式如下,例如:
static int add(int a, int b);
靜態(tài)函數(shù)的作用域只能在當(dāng)前聲明和定義的文件中,在其它代碼文件中無法#include使用,因此在整個程序中,特別是大型程序,有多個源代碼文件時,即使定義相同名稱的兩個靜態(tài)函數(shù),也不會有命名和使用沖突。
3、內(nèi)聯(lián)函數(shù)
是新增的特性,使用inline關(guān)鍵字聲明和定義,該類函數(shù)類似#define宏定義展開,編譯時會直接將函數(shù)定義代碼在調(diào)用的地方復(fù)制展開,這樣會減少函數(shù)調(diào)用的開銷,提高運行效率。
inline int add(int a, int b);
內(nèi)聯(lián)函數(shù)適合短小的、被頻繁調(diào)用的函數(shù),對于復(fù)雜函數(shù),無法使用。
擴展資料:
C語言編寫注意事項:
1、const在聲明變量中起限制作用, 該限定變量的值不能被修改。
2、%運算符不能應(yīng)用與float或double類型。
3、char類型轉(zhuǎn)換為int型時, 無法判斷它是signed還是unsigned.這樣其結(jié)果有可能為負數(shù), 因此轉(zhuǎn)換時盡量指定signed和unsigned限制符。
4、++i與i++不同之處: ++i是先+1在使用, i++是先使用i在遞加1。
5、三元運算符"?:" 第一個表達式的括號不是必須的,但是由于三元表達式的優(yōu)先級非常低,我們還是將第一個表達式用()括起便于閱讀和理解。
6、C語言中可以使用遞歸 (即函數(shù)調(diào)用自身函數(shù)), 其不節(jié)省儲存器開銷也不加快執(zhí)行速度, 只是使程序緊湊便于理解。
一般包括字符庫函數(shù),數(shù)學(xué)函數(shù),目錄函數(shù),進程函數(shù),診斷函數(shù),操作函數(shù)等。
字符庫函數(shù)所在函數(shù)庫為ctype.h;數(shù)學(xué)函數(shù)所在函數(shù)庫為math.h、stdio.h、string.h、float.h;目錄函數(shù)所在函數(shù)庫為dir.h、dos.h;進程函數(shù)所在函數(shù)庫為stdlib.h、process.h。
診斷函數(shù)所在函數(shù)庫為assert.h、math.h;接口子程序所在函數(shù)庫為:dos.h、bios.h;操作函數(shù)所在函數(shù)庫為string.h、mem.h;時間日期函數(shù)函數(shù)庫為time.h、dos.h。
擴展資料
C語言為一種程序設(shè)計的入門語言。由于C語言的語句中沒有提供直接計算sin或cos函數(shù)的語句,會造成編寫程序困難;但是函數(shù)庫提供了sin和cos函數(shù),可以拿來直接調(diào)用。顯示一段文字,我們在C語言中找不到顯示語句,只能使用庫函數(shù)printf。
C語言的庫函數(shù)并不是C語言本身的一部分,它是由編譯程序根據(jù)一般用戶的需要,編制并提供用戶使用的一組程序。C的庫函數(shù)極大地方便了用戶,同時也補充了C語言本身的不足。在編寫C語言程序時,使用庫函數(shù),既可以提高程序的運行效率,又可以提高編程的質(zhì)量。
參考資料來源:百度百科-C語言庫函數(shù)
參考資料來源:百度百科-C語言函數(shù)
1、庫函數(shù):是由C語言系統(tǒng)提供的函數(shù),這類函數(shù)用戶可以直接在程序中調(diào)用,從而完成一定的功能,這類函數(shù)也被稱為“標準函數(shù)”。
2、用戶自定義函數(shù):是由用戶在程序中定義的函數(shù),是由用戶根據(jù)應(yīng)用程序的需要而定義、用以完成特定功能的程序模塊。
在c語言中用沒有函數(shù)判定一個變量的類型,可以使用sizeof來判斷變量大小。
示例:
#include stdio.h
#include stdlib.h
int main(int argc,char **argv)? ? ? ? ?//主程序
{
//對C語言內(nèi)置類型的所占字節(jié)數(shù)的測試
printf("size of char is: %d\n",sizeof(char));? ? ? ?//字符型數(shù)據(jù)所占字節(jié)數(shù) 、
printf("size of short is: %d\n",sizeof(short));? ? ?//短整形數(shù)據(jù)所占字節(jié)數(shù)
printf("size of int is: %d\n",sizeof(int ));? ? ? ? //整形數(shù)據(jù)
printf("size of short int is: %d\n",sizeof(short int)); //短整形
printf("size of long int is: %d\n",sizeof(long int));? ? //長整形數(shù)據(jù)
printf("size of float is: %d\n",sizeof(float));? ? ? ? ? //浮點型數(shù)據(jù)
printf("size of double is: %d\n",sizeof(double));? ? ? ? //雙精度數(shù)據(jù)
//對字符及字符串?dāng)?shù)組所占字節(jié)數(shù)的測量
char a[] ={'a','b','c','d','e'};
printf("size of a[] is: %d\n",sizeof(a));? ? ? ? ? ? ? ?//輸出數(shù)組a[]所占字節(jié)數(shù)
char b[]={"abcde"};? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//初始化字符串b
printf("size of b[] is: %d\n",sizeof(b));? ? ? ? ? ? ? ?//數(shù)組b[]
char c[][3]={{'a','b','c'},{'d','e','f'},{'g','h','i'},{'j','k','l'}};? //初始化二維字符型數(shù)組
printf("size of c[][] is: %d\n",sizeof(c));? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//二維數(shù)組c所占字節(jié)數(shù)
printf("size of c[0] is: %d\n",sizeof(c[0]));? ? ? ? ? ? ? ? ? ? ? ? ? ?//二維數(shù)組中的某行所占的字節(jié)數(shù),例如第0行
printf("size of c[0][0] is: %d\n",sizeof(c[0][0]));? ? ? ? ? ? ? ? ? ? ?//某行某個元素,例如第0行第0個元素
//對指針所占字節(jié)數(shù)的測量
char *p=0;
printf("size of *p is: %d\n",sizeof(p));? ? ? ? ? ? ? ? ? ? ? ?//字符型指針
system("pause");
return 0;
}
擴展資料
使用sizeof()計算數(shù)組長度
將sizeof用于 expr是并沒有計算expr的值。特別是在sizeof *p中,指針p可以是一個無效地址,因為不需要對p做解引用操作。
對char類型或值為char類型的表達式做sizeof操作結(jié)果為1。對引用類型做sizeof操作,將返回存放此引用類型對象所需的內(nèi)存空間大小。
對指針做sizeof操作,將返回存放指針所需的內(nèi)存大小,注意,如果要獲取該指針指向?qū)ο蟮拇笮。瑒t必須對該指針進行解引用。對數(shù)組做sizeof操作等效于對其元素做sizeof操作的結(jié)果乘上數(shù)組元素的個數(shù)。
因為sizeof返回整個數(shù)組在內(nèi)存中的存儲長度,所以用sizeof數(shù)組的結(jié)果初一sizeof其元素類型的結(jié)果,即可求出數(shù)組元素的個數(shù):int sz = sizeof(ia)/sizeof(*ia);
通常將8位的塊作為一個字節(jié),32位或4個字節(jié)作為一個 “字”。一般的short為半個機器字長,int為一個機器字長。