自定義函數(shù)是由用戶(hù)按需要寫(xiě)的函數(shù)。這與庫(kù)函數(shù)相對(duì)應(yīng)的,庫(kù)函數(shù)是由c系統(tǒng)提供的函數(shù),已經(jīng)定義好了如printf
創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶(hù)于互聯(lián)網(wǎng)時(shí)代的路北網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
、
scanf
、
getchar
、putchar、gets、puts、strcat等函數(shù)均屬此類(lèi)。
說(shuō)白了,自定義函數(shù)是是自己寫(xiě)的,想實(shí)現(xiàn)什么功能就寫(xiě)什么,然后在用的時(shí)候和庫(kù)函數(shù)(系統(tǒng)定義的)的一樣調(diào)用就是了,相當(dāng)于自己增加了一個(gè)自己的庫(kù)函數(shù)。
錯(cuò)誤一、
void strca1(char s1[],char s2[])
{
int i,j; //這里i , j 沒(méi)的初值,運(yùn)行結(jié)果是不確定的?。〖由弦痪洌?/p>
i=j=0;
錯(cuò)誤二、
char e[20]="aaaa",f[20]="bbbb",*g,*h,*k; //這里g h都是指針,且沒(méi)有給指定空間位置
g="cccc"; //這里直接向g所指向的位置放數(shù)據(jù),就好比,你想往盒子里面放蘋(píng)果,但你卻沒(méi)有告訴往哪個(gè)盒子里放,“cccc"就不知道會(huì)存放到哪里了,當(dāng)g指向了一個(gè)不可用的內(nèi)存地址,程序就會(huì)運(yùn)行錯(cuò)誤了!
h="dddd";//同上
改正方法:
char e[20]="aaaa",f[20]="bbbb";
char *g="cccc",*h="dddd",*k; //在定義時(shí)這樣寫(xiě)是可以的,意思是讓g直接指向一個(gè)存放"cccc"數(shù)據(jù)的位置。
#define _CRT_SECURE_NO_WARNINGS
#include stdio.h
//聲明一個(gè)求和的函數(shù)
int sum(int a, int b);
int main(int argc, char* argv[])
{
int x = 5, y = 7;
int s = sum(x, y); //調(diào)用函數(shù)
printf("x + y = %d \n", s);
system("pause");
return 0;
}
//定義求和函數(shù)
int sum(int a, int b)
{
return a + b;
}
更多C語(yǔ)言教程
函數(shù)是用于執(zhí)行預(yù)定義操作并可選地返回值的子程序。
使用函數(shù),我們可以避免程序中的重復(fù)編碼,簡(jiǎn)化并加快程序開(kāi)發(fā)。
C語(yǔ)言提供兩種類(lèi)型的函數(shù):庫(kù)函數(shù)和用戶(hù)定義函數(shù)。
將代碼段封裝成函數(shù)的過(guò)程叫做函數(shù)定義。
函數(shù)可以重復(fù)使用的代碼,用來(lái)獨(dú)立地完成某個(gè)功能,它可以接收用戶(hù)傳遞的數(shù)據(jù),也可以不接收。接收用戶(hù)數(shù)據(jù)的函數(shù)在定義時(shí)要指明參數(shù),不接收用戶(hù)數(shù)據(jù)的不需要指明,根據(jù)這一點(diǎn)可以將函數(shù)分為有參函數(shù)和無(wú)參函數(shù)。
相關(guān)概念:
函數(shù)不能嵌套定義,main 也是一個(gè)函數(shù)定義,所以要將 sum 放在 main 外面。函數(shù)必須先定義后使用,所以 sum 要放在 main 前面。
函數(shù)定義時(shí)給出的參數(shù)稱(chēng)為形式參數(shù),簡(jiǎn)稱(chēng)形參;函數(shù)調(diào)用時(shí)給出的參數(shù)(也就是傳遞的數(shù)據(jù))稱(chēng)為實(shí)際參數(shù),簡(jiǎn)稱(chēng)實(shí)參。函數(shù)調(diào)用時(shí),將實(shí)參的值傳遞給形參,相當(dāng)于一次賦值操作。
原則上講,實(shí)參的類(lèi)型和數(shù)目要與形參保持一致。如果能夠進(jìn)行自動(dòng)類(lèi)型轉(zhuǎn)換,或者進(jìn)行了強(qiáng)制類(lèi)型轉(zhuǎn)換,那么實(shí)參類(lèi)型也可以不同于形參類(lèi)型,例如將 int 類(lèi)型的實(shí)參傳遞給 float 類(lèi)型的形參就會(huì)發(fā)生自動(dòng)類(lèi)型轉(zhuǎn)換。