C語(yǔ)言中的函數(shù)的作用是可以將一段經(jīng)常需要使用的代碼封裝起來(lái),在需要使用時(shí)可以直接調(diào)用。
創(chuàng)新互聯(lián)憑借在網(wǎng)站建設(shè)、網(wǎng)站推廣領(lǐng)域領(lǐng)先的技術(shù)能力和多年的行業(yè)經(jīng)驗(yàn),為客戶(hù)提供超值的營(yíng)銷(xiāo)型網(wǎng)站建設(shè)服務(wù),我們始終認(rèn)為:好的營(yíng)銷(xiāo)型網(wǎng)站就是好的業(yè)務(wù)員。我們已成功為企業(yè)單位、個(gè)人等客戶(hù)提供了成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)服務(wù),以良好的商業(yè)信譽(yù),完善的服務(wù)及深厚的技術(shù)力量處于同行領(lǐng)先地位。
示例:
語(yǔ)言的函數(shù)定義和函數(shù)聲明
#includestdio.h
//使用函數(shù)前,需要在main函數(shù)前對(duì)使用的函數(shù)進(jìn)行聲明
int getMax(int, int);
void main() {
int t=getMax(12, 21);
printf("%d\n", t);
getchar();
}
int getMax(int a, int b) {
if (a b) {
return a;
}
else {
return b;
}
}
擴(kuò)展資料
scanf 函數(shù)
函數(shù)原型:int scanf(char *format [,argument,...])
功能:從標(biāo)準(zhǔn)輸入設(shè)備(一般指鍵盤(pán))實(shí)現(xiàn)格式化輸入
返回值:成功返回讀入的數(shù)據(jù)項(xiàng)個(gè)數(shù)
函數(shù)參數(shù):format 格式化字符串
argument 輸入數(shù)據(jù)項(xiàng)的地址列表
常用格式類(lèi)型參考printf函數(shù)的個(gè)格式類(lèi)型
用法舉例:
從標(biāo)準(zhǔn)輸入設(shè)備中輸入一個(gè)整數(shù)到整形變量a中,輸入一個(gè)浮點(diǎn)數(shù)到浮點(diǎn)型變量b中
int a=0;
float b=0;
scanf("%d%f",a,b);
上面程序執(zhí)行后,從鍵盤(pán)輸入: 19 18.6 ,程序?qū)?19賦值給變量a, 18.6賦值給變量b 。
析構(gòu)函數(shù)(destructor)
與構(gòu)造函數(shù)相反,當(dāng)對(duì)象脫離其作用域時(shí)(例如對(duì)象所在的函數(shù)已調(diào)用完畢),系統(tǒng)自動(dòng)執(zhí)行析構(gòu)函數(shù)。析構(gòu)函數(shù)往往用來(lái)做“清理善后”
的工作(例如在建立對(duì)象時(shí)用new開(kāi)辟了一片內(nèi)存空間,應(yīng)在退出前在析構(gòu)函數(shù)中用delete釋放)。
以C++語(yǔ)言為例,析構(gòu)函數(shù)名也應(yīng)與類(lèi)名相同,只是在函數(shù)名前面加一個(gè)波浪符~,例如~stud(
),以區(qū)別于構(gòu)造函數(shù)。它不能帶任何參數(shù),也沒(méi)有返回值(包括void類(lèi)型)。只能有一個(gè)析構(gòu)函數(shù),不能重載。如果用戶(hù)沒(méi)有編寫(xiě)析構(gòu)函數(shù),編譯系統(tǒng)會(huì)自動(dòng)生成一個(gè)缺省的析構(gòu)函數(shù),它也不進(jìn)行任何操作。所以許多簡(jiǎn)單的類(lèi)中沒(méi)有用顯式的析構(gòu)函數(shù)。
例15.2
包含構(gòu)造函數(shù)和析構(gòu)函數(shù)的C++程序。
#includecstring
#includeiostream
using
namespace
std;
class
stud
//聲明一個(gè)類(lèi)
{
private:
//
私有部分
int
num;
char
name[10];
char
sex
;
public:
//公用部分
stud(int
n,char
nam[],char
s
)
//構(gòu)造函數(shù)
{
num
=
n;
strcpy
(name,
nam);
sex
=
s;
}
~stud(
)
//析構(gòu)函數(shù)
{
cout
"stud
has
been
destructe!"
endl;//通過(guò)輸出提示告訴我們析構(gòu)函數(shù)確實(shí)被調(diào)用了
}
void
display(
)
//成員函數(shù),輸出對(duì)象的數(shù)據(jù)
{
cout"num:
"numendl;
cout"name:
"nameendl;
cout"sex:
"sexendl;
}
};
void
main(
)
{
stud
stud1(10010,
"Wang-li",
'f'),
stud2(10011,
"Zhang-fun",
'm');
//建立兩個(gè)對(duì)象
stud1.display(
);
//輸出學(xué)生1的數(shù)據(jù)
stud2.display(
);
//輸出學(xué)生2的數(shù)據(jù)
}//主函數(shù)結(jié)束的同時(shí),對(duì)象stud1,stud2均應(yīng)被“清理”,而清理就是通過(guò)調(diào)用了析構(gòu)函數(shù)實(shí)現(xiàn)的。
輸出結(jié)果:
num:
10010
name:
Wang-li
sex:
f
num:
10011
name:
Zhang-fun
sex:
m
stud
has
been
destructe!
stud
has
been
destructe!
現(xiàn)在把類(lèi)的聲明放在main函數(shù)之前,它的作用域是全局的。這樣做可以使main函數(shù)更簡(jiǎn)練一些。在main函數(shù)中定義了兩個(gè)對(duì)象并且給出了初值,然后輸出兩個(gè)學(xué)生的數(shù)據(jù)。當(dāng)主函數(shù)結(jié)束時(shí)調(diào)用析構(gòu)函數(shù),輸出stud
has
been
destructe!。
在本程序中,成員函數(shù)是在類(lèi)中定義的,如果成員函數(shù)的數(shù)目很多以及函數(shù)的長(zhǎng)度很長(zhǎng),類(lèi)的聲明就會(huì)占很大的篇幅,不利于閱讀程序。而且為了隱藏實(shí)現(xiàn),一般是有必要將類(lèi)的聲明和實(shí)現(xiàn)(具體方法代碼)分開(kāi)編寫(xiě)的,這也是一個(gè)良好的編程習(xí)慣。即可以在類(lèi)的外面定義成員函數(shù),而在類(lèi)中只用函數(shù)的原型作聲明。
對(duì)象的時(shí)候首先運(yùn)行的函數(shù) 可以有參數(shù) 可以無(wú)參數(shù) 也可以重載 你可以發(fā)現(xiàn)你在定義類(lèi)的成員的時(shí)候無(wú)法賦初始值 構(gòu)造函數(shù)的很重要的一個(gè)用處就是初始化里面的成員變量
析構(gòu)函數(shù)正好相反 當(dāng)你這個(gè)類(lèi)的對(duì)象不存在的時(shí)候 先運(yùn)行析構(gòu)函數(shù) 然后再釋放這個(gè)對(duì)象所占用的內(nèi)存 比如說(shuō)定義在某個(gè)函數(shù)里的類(lèi)的對(duì)象 當(dāng)這個(gè)函數(shù)體結(jié)束的時(shí)候 先運(yùn)行這個(gè)類(lèi)的對(duì)象的析構(gòu)函數(shù) 然后釋放該類(lèi)所占用的內(nèi)存 現(xiàn)在析構(gòu)函數(shù)最大的用處就是 比如說(shuō)你在構(gòu)造函數(shù)里用了 new這個(gè)函數(shù) 申請(qǐng)了一塊堆內(nèi)存 (或者用malloc 一樣的作用)如果你不釋放這塊內(nèi)存就會(huì)造成內(nèi)存泄露 這個(gè)時(shí)候就應(yīng)該在析構(gòu)函數(shù)里寫(xiě)一個(gè)delete函數(shù)釋放申請(qǐng)的空間(如果是malloc申請(qǐng)的則用free()函數(shù))別的用處就看你自己想象了。。。
另外還有一點(diǎn)應(yīng)該注意 先構(gòu)造后析構(gòu) 比如你申請(qǐng)了類(lèi)TEMP的兩個(gè)對(duì)象TEMP a;TEMP b;則析構(gòu)的時(shí)候首先析構(gòu)b,然后再析構(gòu)a,如果是繼承的話(huà) 則先構(gòu)造子類(lèi) 然后構(gòu)造父類(lèi) 先析構(gòu)父類(lèi) 后析構(gòu)子類(lèi) 你可以自己嘗試寫(xiě)點(diǎn)兒句子 可以更加了解構(gòu)造函數(shù)析構(gòu)函數(shù)的順序及作用。。。
sqrt(float型變量)
例:float
i=5;printf("%f",sqrt(i));
abs(i)求絕對(duì)值,意義不大,還不如自己定義
isprint、isalnum、isxdigit
這些沒(méi)什么用處,都可以用基本函數(shù)實(shí)現(xiàn),學(xué)他就是浪費(fèi)時(shí)間
srand()和rand()隨機(jī)函數(shù)
,默認(rèn)種子
0返回0-65536的其中一個(gè)值,randomize();對(duì)種子初始化,默認(rèn)參數(shù):時(shí)間,不初始化的結(jié)果是每次隨機(jī)的結(jié)果序列都一樣,因?yàn)檫@個(gè)隨機(jī)數(shù)是用數(shù)學(xué)公式計(jì)算出來(lái)的
產(chǎn)生
0-7的隨機(jī)數(shù):rand()%7
,對(duì)7求余即可達(dá)到目的
字符處理函數(shù)
本類(lèi)別函數(shù)用于對(duì)單個(gè)字符進(jìn)行處理,包括字符的類(lèi)別測(cè)試和字符的大小寫(xiě)轉(zhuǎn)換
頭文件 ctype.h
函數(shù)列表
函數(shù)類(lèi)別 函數(shù)用途 詳細(xì)說(shuō)明
字符測(cè)試 是否字母和數(shù)字 isalnum
是否字母 isalpha
是否控制字符 iscntrl
是否數(shù)字 isdigit
是否可顯示字符(除空格外) isgraph
是否可顯示字符(包括空格) isprint
是否既不是空格,又不是字母和數(shù)字的可顯示字符 ispunct
是否空格 isspace
是否大寫(xiě)字母 isupper
是否16進(jìn)制數(shù)字(0-9,A-F)字符 isxdigit
字符大小寫(xiě)轉(zhuǎn)換函數(shù) 轉(zhuǎn)換為大寫(xiě)字母 toupper
轉(zhuǎn)換為小寫(xiě)字母 tolower
地區(qū)化
本類(lèi)別的函數(shù)用于處理不同國(guó)家的語(yǔ)言差異。
頭文件 local.h
函數(shù)列表
函數(shù)類(lèi)別 函數(shù)用途 詳細(xì)說(shuō)明
地區(qū)控制 地區(qū)設(shè)置 setlocale
數(shù)字格式約定查詢(xún) 國(guó)家的貨幣、日期、時(shí)間等的格式轉(zhuǎn)換 localeconv
數(shù)學(xué)函數(shù)
本分類(lèi)給出了各種數(shù)學(xué)計(jì)算函數(shù),必須提醒的是ANSI C標(biāo)準(zhǔn)中的數(shù)據(jù)格式并不符合IEEE754標(biāo)準(zhǔn),一些C語(yǔ)言編譯器卻遵循IEEE754(例如frinklin C51)
頭文件 math.h
函數(shù)列表
函數(shù)類(lèi)別 函數(shù)用途 詳細(xì)說(shuō)明
錯(cuò)誤條件處理 定義域錯(cuò)誤(函數(shù)的輸入?yún)?shù)值不在規(guī)定的范圍內(nèi))
值域錯(cuò)誤(函數(shù)的返回值不在規(guī)定的范圍內(nèi))
三角函數(shù) 反余弦 acos
反正弦 asin
反正切 atan
反正切2 atan2
余弦 cos
正弦 sin
正切 tan
雙曲函數(shù) 雙曲余弦 cosh
雙曲正弦 sinh
雙曲正切 tanh
指數(shù)和對(duì)數(shù) 指數(shù)函數(shù) exp
指數(shù)分解函數(shù) frexp
乘積指數(shù)函數(shù) fdexp
自然對(duì)數(shù) log
以10為底的對(duì)數(shù) log10
浮點(diǎn)數(shù)分解函數(shù) modf
冪函數(shù) 冪函數(shù) pow
平方根函數(shù) sqrt
整數(shù)截?cái)?,絕對(duì)值和求余數(shù)函數(shù) 求下限接近整數(shù) ceil
絕對(duì)值 fabs
求上限接近整數(shù) floor
求余數(shù) fmod
本分類(lèi)函數(shù)用于實(shí)現(xiàn)在不同底函數(shù)之間直接跳轉(zhuǎn)代碼。 頭文件 setjmp.h io.h
函數(shù)列表
函數(shù)類(lèi)別 函數(shù)用途 詳細(xì)說(shuō)明
保存調(diào)用環(huán)境 setjmp
恢復(fù)調(diào)用環(huán)境 longjmp
信號(hào)處理
該分類(lèi)函數(shù)用于處理那些在程序執(zhí)行過(guò)程中發(fā)生例外的情況。
頭文件 signal.h
函數(shù)列表
函數(shù)類(lèi)別 函數(shù)用途 詳細(xì)說(shuō)明
指定信號(hào)處理函數(shù) signal
發(fā)送信號(hào) raise
可變參數(shù)處理
本類(lèi)函數(shù)用于實(shí)現(xiàn)諸如printf,scanf等參數(shù)數(shù)量可變底函數(shù)。
頭文件 stdarg.h
函數(shù)列表
函數(shù)類(lèi)別 函數(shù)用途 詳細(xì)說(shuō)明
可變參數(shù)訪(fǎng)問(wèn)宏 可變參數(shù)開(kāi)始宏 va_start
可變參數(shù)結(jié)束宏 va_end
可變參數(shù)訪(fǎng)問(wèn)宏 訪(fǎng)問(wèn)下一個(gè)可變參數(shù)宏 va_arg
輸入輸出函數(shù)
該分類(lèi)用于處理包括文件、控制臺(tái)等各種輸入輸出設(shè)備,各種函數(shù)以“流”的方式實(shí)現(xiàn)
頭文件 stdio.h
函數(shù)列表
函數(shù)類(lèi)別 函數(shù)用途 詳細(xì)說(shuō)明
文件操作
刪除文件 remove
修改文件名稱(chēng) rename
生成臨時(shí)文件名稱(chēng) tmpfile
得到臨時(shí)文件路徑 tmpnam
文件訪(fǎng)問(wèn) 關(guān)閉文件 fclose
刷新緩沖區(qū) fflush
打開(kāi)文件 fopen
將已存在的流指針和新文件連接 freopen
設(shè)置磁盤(pán)緩沖區(qū) setbuf
設(shè)置磁盤(pán)緩沖區(qū) setvbuf
格式化輸入與輸出函數(shù) 格式輸出 fprintf
格式輸入 fscanf
格式輸出(控制臺(tái)) printf
格式輸入(控制臺(tái)) scanf
格式輸出到緩沖區(qū) sprintf
從緩沖區(qū)中按格式輸入 sscanf
格式化輸出 vfprintf
格式化輸出 vprintf
格式化輸出 vsprintf
字符輸入輸出函數(shù) 輸入一個(gè)字符 fgetc
字符串輸入 fgets
字符輸出 fputc
字符串輸出 fputs
字符輸入(控制臺(tái)) getc
字符輸入(控制臺(tái)) getchar
字符串輸入(控制臺(tái)) gets
字符輸出(控制臺(tái)) putc
字符輸出(控制臺(tái)) putchar
字符串輸出(控制臺(tái)) puts
字符輸出到流的頭部 ungetc
直接輸入輸出 直接流讀操作 fread
直接流寫(xiě)操作 fwrite
文件定位函數(shù) 得到文件位置 fgetpos
文件位置移動(dòng) fseek
文件位置設(shè)置 fsetpos
得到文件位置 ftell
文件位置復(fù)零位 remind
錯(cuò)誤處理函數(shù) 錯(cuò)誤清除 clearerr
文件結(jié)尾判斷 feof
文件錯(cuò)誤檢測(cè) ferror
得到錯(cuò)誤提示字符串 perror
實(shí)用工具函數(shù)
本分類(lèi)給出了一些函數(shù)無(wú)法按以上分類(lèi),但又是編程所必須要的。
頭文件 stdlib.h
函數(shù)列表
函數(shù)類(lèi)別 函數(shù)用途 詳細(xì)說(shuō)明
字符串轉(zhuǎn)換函數(shù) 字符串轉(zhuǎn)換為整數(shù) atoi
字符串轉(zhuǎn)換為長(zhǎng)整數(shù) atol
字符串轉(zhuǎn)換為浮點(diǎn)數(shù) strtod
字符串轉(zhuǎn)換為長(zhǎng)整數(shù) strtol
字符串轉(zhuǎn)換為無(wú)符號(hào)長(zhǎng)整型 strtoul
偽隨機(jī)序列產(chǎn)生函數(shù) 產(chǎn)生隨機(jī)數(shù) rand
設(shè)置隨機(jī)函數(shù)的起動(dòng)數(shù)值 srand
存儲(chǔ)管理函數(shù) 分配存儲(chǔ)器 calloc
釋放存儲(chǔ)器 free
存儲(chǔ)器分配 malloc
重新分配存儲(chǔ)器 realloc
環(huán)境通信 中止程序 abort
退出程序執(zhí)行,并清除環(huán)境變量 atexit
退出程序執(zhí)行 exit
讀取環(huán)境參數(shù) getenv
程序掛起,臨時(shí)執(zhí)行一個(gè)其他程序 system
搜索和排序工具 二分查找(數(shù)據(jù)必須已排序) bsearch
快速排序 qsort
整數(shù)運(yùn)算函數(shù) 求絕對(duì)值 abs
div
得到除法運(yùn)算底商和余數(shù)
求長(zhǎng)整形底絕對(duì)值 labs
求長(zhǎng)整形除法的商和余數(shù) ldiv
多字節(jié)字符函數(shù) 得到多字節(jié)字符的字節(jié)數(shù) mblen
得到多字節(jié)字符的字節(jié)數(shù) mbtowc
多字節(jié)字符轉(zhuǎn)換 wctomb
多字節(jié)字符的字符串操作 將多字節(jié)串轉(zhuǎn)換為整數(shù)數(shù)組 mbstowcs
將多字節(jié)串轉(zhuǎn)換為字符數(shù)組 mcstowbs
字符串處理
本分類(lèi)的函數(shù)用于對(duì)字符串進(jìn)行合并、比較等操作
頭文件 string.h
函數(shù)列表
函數(shù)類(lèi)別 函數(shù)用途 詳細(xì)說(shuō)明
字符串拷貝 塊拷貝(目的和源存儲(chǔ)區(qū)不可重疊) memcpy
塊拷貝(目的和源存儲(chǔ)區(qū)可重疊) memmove
串拷貝 strcpy
按長(zhǎng)度的串拷貝 strncpy
字符串連接函數(shù) 串連接 strcat
按長(zhǎng)度連接字符串 strncat
串比較函數(shù) 塊比較 memcmp
字符串比較 strcmp
字符串比較(用于非英文字符) strcoll
按長(zhǎng)度對(duì)字符串比較 strncmp
字符串轉(zhuǎn)換 strxfrm
字符與字符串查找 字符查找 memchr
字符查找 strchr
字符串查找 strcspn
字符串查找 strpbrk
字符串查找 strspn
字符串查找 strstr
字符串分解 strtok
雜類(lèi)函數(shù) 字符串設(shè)置 memset
錯(cuò)誤字符串映射 strerror
求字符串長(zhǎng)度 strlen
日期和時(shí)間函數(shù)
本類(lèi)別給出時(shí)間和日期處理函數(shù)
頭文件 time.h
函數(shù)列表
函數(shù)類(lèi)別 函數(shù)用途 詳細(xì)說(shuō)明
時(shí)間操作函數(shù) 得到處理器時(shí)間 clock
得到時(shí)間差 difftime
設(shè)置時(shí)間 mktime
得到時(shí)間 time
時(shí)間轉(zhuǎn)換函數(shù) 得到以ASCII碼表示的時(shí)間 asctime
得到字符串表示的時(shí)間 ctime
得到指定格式的時(shí)間 strftime
函數(shù)庫(kù)未來(lái)的發(fā)展方向
本部分用于說(shuō)明各類(lèi)別函數(shù)庫(kù)在將來(lái)如何發(fā)展。
序號(hào) 庫(kù)類(lèi)別 頭文件 詳細(xì)說(shuō)明
1 錯(cuò)誤處理 errno.h
2 字符處理 ctype.h
3 地區(qū)化 local.h
4 數(shù)學(xué)函數(shù) math.h
5 信號(hào)處理 signal.h
6 輸入輸出 stdio.h
7 實(shí)用工具程序 stdlib.h
8 字符串處理 string.h
網(wǎng)站題目:c加加語(yǔ)言各函數(shù)的作用 C加加函數(shù)
網(wǎng)頁(yè)地址:http://chinadenli.net/article28/hgdhjp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、網(wǎng)站導(dǎo)航、App開(kāi)發(fā)、域名注冊(cè)、動(dòng)態(tài)網(wǎng)站、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
移動(dòng)網(wǎng)站建設(shè)知識(shí)