![](https://csdnimg.cn/release/download_crawler_static/88367857/bg5.jpg)
int a = 4;
int b = 6;
Exchg2(&a, &b);
、、
return(0);
}
3、引用传递
void Exchg3(int &x, int &y)
{
int tmp = x;
x = y;
y = tmp;
}
main()
{
int a = 4;
int b = 6;
Exchg3(a, b);
return(0);
}
4、变长参数传递:使用省略号…指定参数表
使用得宏及其定义(x86 中):
#define va_start _crt_va_start
#define va_arg _crt_va_arg
#define va_end _crt_va_end
typedef char * va_list;
#define _ADDRESSOF(v) ( &(v) )
#define _INTSIZEOF(n) ( (sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) - 1) )
穩赓諸諼谕贱酱。
#define _crt_va_start(ap,v) ( ap = (va_list)_ADDRESSOF(v) + _INTSIZEOF(v) )
鸬户诱庐疯蠶緙。
#define _crt_va_arg(ap,t) ( *(t *)((ap += _INTSIZEOF(t)) - _INTSIZEOF(t)) )
铴閻纭释軹澗炀。
#define _crt_va_end(ap) ( ap = (va_list)0 )
实例:
、、、
、、、
、、、
、、
/*至少需要一个确定得参数,注意括号内得省略号*/
int demo(char *fmt, 、、、)
{
va_list argp;
int argno = 0;
char *para;