W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
您可以使用const關(guān)鍵字限定一個(gè)函數(shù)參數(shù),這表示函數(shù)會處理參數(shù)作為常量。
通常,將const關(guān)鍵字應(yīng)用于作為指針的參數(shù)。
這里是一個(gè)帶有const參數(shù)的函數(shù)的例子:
bool hello(const char* pmessage){ ... }
以下代碼顯示了如何使用可變長度參數(shù)聲明一個(gè)函數(shù)原型。
double average(double v1, double v2, ...);
省略號表示一個(gè)變量參數(shù)數(shù)量可以跟隨前兩個(gè)固定參數(shù)。
可變長度參數(shù)列表必須至少有一個(gè)固定參數(shù)。
要引用參數(shù),請使用指針。
您需要使用三個(gè)函數(shù)來處理可變數(shù)量的參數(shù)。
它們稱為va_start(),va_arg()和va_end()。
您必須調(diào)用va_start()來初始化變量參數(shù)列表指針的值功能。此指針必須聲明為類型va_list。
va_start()具有以下形式:
void va_start(va_list parg, last_fixed_arg);
此函數(shù)接受兩個(gè)參數(shù):類型為va_list的指針parg,以及為該函數(shù)指定的最后一個(gè)固定參數(shù)的名稱。
va_list類型是在stdarg.h中定義的類型。
va_arg()的第一個(gè)參數(shù)是通過調(diào)用va_start()初始化的變量parg。
第二個(gè)參數(shù)是類型的規(guī)范期望找到的參數(shù)。
函數(shù)va_arg()返回由parg指定的當(dāng)前參數(shù)的值這是存儲在值。
它更新指針parg以指向列表中的下一個(gè)參數(shù)。
va_end()是清理。
它將parg指針重置為NULL。
#include <stdio.h>
#include <stdarg.h>
//from www. j av a 2 s .c om
double average(double v1 , double v2,...); // Function prototype
int main(void)
{
double v1 = 1.5, v2 = 2.5;
int num1 = 6, num2 = 5;
long num3 = 2L, num4 = 12L;
printf("Average = %.2lf\n", average(v1, 3.5, v2, 4.5, 0.0));
printf("Average = %.2lf\n", average(1.0, 2.0, 0.0));
printf("Average = %.2lf\n", average( (double)num2, v2,(double)num1, (double)num4,(double)num3, 0.0));
return 0;
}
// Function to calculate the average of two or more arguments
double average( double v1, double v2,...) {
va_list parg; // Pointer for variable argument list
double sum = v1 + v2; // Accumulate sum of the arguments
double value = 0.0; // Argument value
int count = 2; // Count of number of arguments
va_start(parg,v2); // Initialize argument pointer
while((value = va_arg(parg, double)) != 0.0) {
sum += value;
++count;
}
va_end(parg); // End variable argument process
return sum/count;
}
上面的代碼生成以下結(jié)果。
main()函數(shù)是執(zhí)行開始的地方。
main()可以有一個(gè)參數(shù)列表,這樣你可以傳遞參數(shù)給main()當(dāng)你執(zhí)行一個(gè)程序時(shí)命令行。
您可以編寫main()函數(shù),不帶參數(shù)或使用兩個(gè)參數(shù)。
當(dāng)你寫參數(shù)的main()第一個(gè)參數(shù)是int類型,并存儲一個(gè)計(jì)數(shù)參數(shù),包括程序本身的名稱。
main()的第二個(gè)參數(shù)是一個(gè)指向字符串的指針數(shù)組。
#include <stdio.h>
int main(int argc, char *argv[])
{
printf("Program name: %s\n", argv[0]);
for(int i = 1 ; i<argc ; ++i)
printf("Argument %d: %s\n", i, argv[i]);
return 0;
}
上面的代碼生成以下結(jié)果。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: