[已解决][问题]如何将一个变量值作为另一个变量的名称?
- Tobey
- 帖子: 178
- 注册时间: 2006-03-30 13:34
[已解决][问题]如何将一个变量值作为另一个变量的名称?
1 。[问题]如何将一个变量值作为另一个变量的名称?
比如:
$1=a
$2=b
......
$a=ok
$b=okay
假设我们不知道需要$a和$b哪个变量的值.只知道需要名称为$1的值的变量的值。
如何由$1 我们想要的值?
---------------------------------
2.
或者如何获得传递给1个函数的所有参数的值,前提是参数个数不定,编程者不知道会有几个,但需要在函数中处理所有参数。。
2个问题,任一解决即可。
比如:
$1=a
$2=b
......
$a=ok
$b=okay
假设我们不知道需要$a和$b哪个变量的值.只知道需要名称为$1的值的变量的值。
如何由$1 我们想要的值?
---------------------------------
2.
或者如何获得传递给1个函数的所有参数的值,前提是参数个数不定,编程者不知道会有几个,但需要在函数中处理所有参数。。
2个问题,任一解决即可。
上次由 Tobey 在 2008-07-22 21:03,总共编辑 1 次。
- yjcong
- 帖子: 2470
- 注册时间: 2006-02-28 3:11
- 79hy
- 帖子: 80
- 注册时间: 2007-10-24 10:21
- 来自: 长沙
- BigSnake.NET
- 帖子: 12522
- 注册时间: 2006-07-02 11:16
- 来自: 廣州
- 联系:
- BigSnake.NET
- 帖子: 12522
- 注册时间: 2006-07-02 11:16
- 来自: 廣州
- 联系:
- 79hy
- 帖子: 80
- 注册时间: 2007-10-24 10:21
- 来自: 长沙
-
- 帖子: 14
- 注册时间: 2008-07-22 9:56
- BigSnake.NET
- 帖子: 12522
- 注册时间: 2006-07-02 11:16
- 来自: 廣州
- 联系:
- 79hy
- 帖子: 80
- 注册时间: 2007-10-24 10:21
- 来自: 长沙
- BigSnake.NET
- 帖子: 12522
- 注册时间: 2006-07-02 11:16
- 来自: 廣州
- 联系:
- yawsh
- 帖子: 105
- 注册时间: 2006-04-29 10:51
对于第二个问题,在c99语言里面可以使用自变量数量可变的函数,
称为“variadic" 函数,最典型的例子就是printf和scanf函数。
摘要:
“variadic”函数要存取可选性自变量的时,必须通过一个类型为
va_list的对象,该类型定义在“stdarg.h”中。相关的宏定义有:
void va_start(va_list argptr ,lastparam);
type va_arg(va_list argptr , type);
void va_end(va_list argptr);
例子:
//add() 累加可选性自变量
//自变量:n 为可选性自变量的数量
//返回值:累加和 double
#include <stdarg.h>
//...
double add(int n, ...)
{
int i = 0;
double sum = 0.0;
va_list argptr;
va_start(argptr , n); //取得第一个可选性自变量的位置来初始化argptr自变量指针
for(i = 0 ; i < n ; ++i ){
sum += va_arg(argptr , double ); //读取类型为double的自变量,累加到sum
}
va_end( argptr );
return sum;
}
称为“variadic" 函数,最典型的例子就是printf和scanf函数。
摘要:
“variadic”函数要存取可选性自变量的时,必须通过一个类型为
va_list的对象,该类型定义在“stdarg.h”中。相关的宏定义有:
void va_start(va_list argptr ,lastparam);
type va_arg(va_list argptr , type);
void va_end(va_list argptr);
例子:
//add() 累加可选性自变量
//自变量:n 为可选性自变量的数量
//返回值:累加和 double
#include <stdarg.h>
//...
double add(int n, ...)
{
int i = 0;
double sum = 0.0;
va_list argptr;
va_start(argptr , n); //取得第一个可选性自变量的位置来初始化argptr自变量指针
for(i = 0 ; i < n ; ++i ){
sum += va_arg(argptr , double ); //读取类型为double的自变量,累加到sum
}
va_end( argptr );
return sum;
}
- Tobey
- 帖子: 178
- 注册时间: 2006-03-30 13:34