函數參數個數不定,... printf()是個好例子

#include<iostream>
using namespace std;
int sum(int first,int second,...)
{
	int num = 0;
	int* a;
	a = &first;
	while(*a != 0)
	{
		num += *a;
		a ++;
	}
	return num;
}
int main()
{
	cout<<sum(1,2,3,0);
}
如下屬抄襲:
  #include <stdio.h>
  int Sum(int first, int second, ...)
  {
  int sum = 0, t = first;
  char * vl;//定義一個指針
  vl = (char *)&first;//使指針指向第一個參數
  while (*vl != -1)//-1是預先給定的結束符
  {
   sum += *(int *)vl;//類型轉換
   vl += sizeof(int);//移動指針,使指針指向下一個參數
  }
  return sum;
  }
  int main(int argc, char* argv[])
  {
  printf("The sum is %d\n", Sum(30, 20, 10, -1));//-1是參數結束標誌
  return 0;
  }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章