可以的,就像以下代碼:
成都創(chuàng)新互聯(lián)公司專注于陽(yáng)高網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供陽(yáng)高營(yíng)銷型網(wǎng)站建設(shè),陽(yáng)高網(wǎng)站制作、陽(yáng)高網(wǎng)頁(yè)設(shè)計(jì)、陽(yáng)高網(wǎng)站官網(wǎng)定制、小程序開(kāi)發(fā)服務(wù),打造陽(yáng)高網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供陽(yáng)高網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。
void?show(char?*str)
{
printf("%s\n",?str);
}
你在調(diào)用的時(shí)候,一般是傳一個(gè)變量進(jìn)去,同樣也可以傳一個(gè)字符串常量進(jìn)去,
例如show("Hello?World");
為什么可以呢?首先要想,什么是變量,變量代表著值不確定,是動(dòng)態(tài)的。
而當(dāng)一個(gè)變量有值的時(shí)候,除非它發(fā)生改變,否則它就是"確定"的。
既然一個(gè)不確定的東西能作為參數(shù)傳遞過(guò)去,那么一個(gè)確定的字符串有何理由不能傳遞呢?
main函數(shù)可以不帶參數(shù),也可以帶參數(shù),這個(gè)參數(shù)可以認(rèn)為是 main函數(shù)的形式參數(shù)。
C語(yǔ)言規(guī)定main函數(shù)的參數(shù)只能有兩個(gè),還規(guī)定argc(第一個(gè)形參)必須是整型變量,argv( 第二個(gè)形參)必須是指向字符串的指針數(shù)組。加上形參說(shuō)明后,main函數(shù)的函數(shù)頭應(yīng)寫為:
int main (int argc,char *argv[])
由于main函數(shù)不能被其它函數(shù)調(diào)用,因此不可能在程序內(nèi)部取得實(shí)際值。那么,在何處把實(shí)參值賦予main函數(shù)的形參呢? 實(shí)際上,main函數(shù)的參數(shù)值是從操作系統(tǒng)命令行上獲得的。當(dāng)我們要運(yùn)行一個(gè)可執(zhí)行文件時(shí),在DOS提示符下鍵入文件名,再輸入實(shí)際參數(shù)即可把這些實(shí)參傳送到main的形參中去。
DOS提示符下命令行的一般形式為:
C:\可執(zhí)行文件名 參數(shù) 參數(shù)……
void表示參數(shù)為空,即這個(gè)函數(shù)不含參數(shù),比如定義一個(gè)print函數(shù)。
程序執(zhí)行總是從main函數(shù)開(kāi)始,如果有有其他函數(shù),則完成對(duì)其他函數(shù)的調(diào)用后再返回到主函數(shù),最后由main函數(shù)結(jié)束整個(gè)程序。在執(zhí)行程序時(shí),由系統(tǒng)調(diào)用main函數(shù)。main 函數(shù)是在程序啟動(dòng)中完成對(duì)具有靜態(tài)存儲(chǔ)期的非局部對(duì)象的初始化之后被調(diào)用的。它是程序在有宿主 (hosted)環(huán)境(亦即有操作系統(tǒng))中所指定的入口點(diǎn)。自立程序(啟動(dòng)加載器,操作系統(tǒng)內(nèi)核,等等)的入口點(diǎn)則是由實(shí)現(xiàn)定義的。
擴(kuò)展資料:
主函數(shù)的兩個(gè)形參形式中的形參,允許從執(zhí)行環(huán)境中傳遞任意的多字節(jié)字符串(它們通常被稱為命令行參數(shù)),各個(gè)指針 argv.. argv[argc-1] 指向每個(gè)這些字符串的第一個(gè)字符。argv[0] 是指向一個(gè)表示用于執(zhí)行該程序自身的名字的空結(jié)尾多字節(jié)字符串(或者當(dāng)執(zhí)行環(huán)境不支持時(shí),為空字符串 "")的開(kāi)頭字符的指針。
這些字符串是可以改動(dòng)的,雖然對(duì)它們的改動(dòng)并不會(huì)被傳回給執(zhí)行環(huán)境:比如可以用 std::strtok 來(lái)使用它們。由 argv 所指向的數(shù)組的大小至少為 argc+1,其最后一個(gè)元素 argv[argc] 保證為一個(gè)空指針。
1、值傳遞
void swap(int x,int y)
{ ? ?int temp = x;
x = y;
y = temp;
}void main()
{
int a = 10, b = 20;
swap(a, b);
}
執(zhí)行后,并不會(huì)交換。
2、引用傳遞
void swap(int x,int y)
{ ? ?int temp = x;
x = y;
y = temp;
}void main()
{
int a = 10, b = 20;
swap(a, b);
printf("a=%d\nb=%d\n", a, b);
}
執(zhí)行后,發(fā)生交換。
3、指針傳遞
void swap(int *x,int *y)
{ ? ?int temp = *x; ? ?*x = *y; ? ?*y = temp;
}void main()
{
int a = 10, b = 20;
swap(a, b);
printf("a=%d\nb=%d\n", a, b);
}
執(zhí)行后,發(fā)生交換。
參數(shù)傳遞只有上面三種,但是如果加上數(shù)組,就會(huì)產(chǎn)生幾種新形式。
首先,明確數(shù)組型變量名本身只是該數(shù)組所占存儲(chǔ)空間的首地址:
int a[3] = { 1, 2, 3 }; ? ?int *p = a; //等價(jià)于下行 ? ?//int *p = a[0];
printf("%d", *p);?
典型的數(shù)組做參數(shù)。
void fun(char s[]){ ? ?for (int i = 0; s[i] != '\0'; i++)
printf("%c", s[i]);
}void main()
{ ? ?char str[] = "Hello World!";
fun(str);
}
函數(shù)調(diào)用時(shí),這里系統(tǒng)不會(huì)為形參分配數(shù)組存儲(chǔ)空間,而是僅僅分配一個(gè)存放數(shù)組地址(第一個(gè)元素地址)的存儲(chǔ)空間,此后,將實(shí)參數(shù)組的首地址傳遞給形參變量。
其實(shí)本質(zhì)與下相同,只不過(guò)還是數(shù)組形式的(數(shù)組名代替指針)。
既然數(shù)組型變量名本身只是該數(shù)組所占存儲(chǔ)空間的首地址,我們當(dāng)然可以用指針做形參來(lái)接收數(shù)組實(shí)參。
void fun(char *p){ ? ?while (*p)
{
printf("%c", *p);
p++;
}?
}void main()
{ ? ?char str[] = "Hello World!";
fun(str);
}
不過(guò)問(wèn)題是如果這樣,無(wú)法把握數(shù)組結(jié)束(除非知道數(shù)組長(zhǎng)度)。而對(duì)于字符數(shù)組(上例),由于字符串末尾有結(jié)束標(biāo)志'\0'(ascii碼正好是0),所以就很容易利用指針來(lái)判斷字符串是否結(jié)束。
擴(kuò)展資料:
調(diào)用帶參數(shù)的函數(shù):
在調(diào)用函數(shù)時(shí),可以向其傳遞值,這些值被稱為參數(shù)。
這些參數(shù)可以在函數(shù)中使用。
可以發(fā)送任意多的參數(shù),由逗號(hào) (,) 分隔:
myFunction(argument1,argument2)。
當(dāng)聲明函數(shù)時(shí),請(qǐng)把參數(shù)作為變量來(lái)聲明:
function myFunction(var1,var2){這里是要執(zhí)行的代碼}。
變量和參數(shù)必須以一致的順序出現(xiàn)。第一個(gè)變量就是第一個(gè)被傳遞的參數(shù)的給定的值,以此類推。
按值傳遞參數(shù):
按值傳遞參數(shù)時(shí),是將實(shí)參變量的值復(fù)制一個(gè)到臨時(shí)存儲(chǔ)單元中,如果在調(diào)用過(guò)程中改變了形參的值,不會(huì)影響實(shí)參變量本身,即實(shí)參變量保持調(diào)用前的值不變。
按值傳遞參數(shù)時(shí),需要在參數(shù)名前加"ByVal"關(guān)鍵字。
按地址傳遞參數(shù):
按地址傳遞參數(shù)時(shí),把實(shí)參變量的地址傳送給被調(diào)用過(guò)程,形參和實(shí)參共用內(nèi)存的同一地址。在被調(diào)用過(guò)程中,形參的值一旦改變,相應(yīng)實(shí)參的值也跟著改變。
如果實(shí)參是一個(gè)常數(shù)或表達(dá)式,Visual Basic 6.0會(huì)按"傳值"方式來(lái)處理,按地址傳遞不需要"ByVal"關(guān)鍵字。
按數(shù)組傳遞參數(shù):
在VB6.0中,允許使用數(shù)組作為實(shí)參傳遞到子過(guò)程的形參中,數(shù)組傳遞必須采用地址傳遞的方式來(lái)傳遞參數(shù)。數(shù)組參數(shù)在傳遞時(shí)應(yīng)注意以下兩個(gè)方面:
① 在實(shí)參和形參列表中只寫數(shù)組名,忽略維數(shù)的定義,但圓括號(hào)不能省,當(dāng)數(shù)組作為參數(shù)傳遞時(shí),系統(tǒng)將實(shí)參數(shù)組的起始地址傳給過(guò)程,使形參數(shù)組也具有與實(shí)參數(shù)組相同的起始地址,若參數(shù)是多維數(shù)組,每維以逗號(hào)分隔。
② 被調(diào)過(guò)程可分別通過(guò)Lbound和Ubound函數(shù)確定實(shí)參數(shù)組的下界和上界。
參考資料來(lái)源:百度百科-參數(shù)傳遞
參考資料來(lái)源:百度百科-字符串