...

...

英文中的省略号、运算符等含义。1、英文中的省略号。  2、DOS和UNIX中表示父目录的文法。单个圆点表示当前目录。  3、在Windows作业系统中"运行"对话框键入"..."可开启”我的电脑“。  4、在网路聊天中, “...”通常可以表示无语、被冷到、被伤到、被寒到等等诸多感受,或在无话可说无感受时回复发言者.  5、用途——等同于“..”,“汗..”“寒..”既无语、被雷到的意思……

  • 中文名称
    ...
  • 用    途
    等同于"..","汗..""寒,无语
  • 性    质
    英文中的省略号
  • 含    义
    无语、被雷到不想作出回应或者不知道怎麽回应的意思

用法

1、英文中的省略号。 2、DOS和UNIX中表示父目录的文法。单个圆点表示当前目录。3、在Windows作业系统中"运行"对话框键入"..."可开启"档案资源管理器"。4、在网路聊天中, "..."通常可以表示无语、被冷到、被伤到、被寒到等等诸多感受,或在无话可说无感受时回复发言者.5、用途--等同于"..","汗..""寒.."即无语、被雷到的意思……

C语言运算符

可变参数函式(Variadic functions)是stdarg.h内容典型的套用,虽然也可以使用在其他由可变参数函式调用的函式(例如,vprintf)。

声明可变参数函式

可变参数函式的参数数量是可变动的,它使用省略号来忽略之后的参数。例如printf函式一般。代表性的声明为:

int check(int a, double b, ...);

可变参数函式最少要有一个命名的参数,所以

char *wrong(...);

在C中是不被允许的(在C++中,这样的声明是合理的)。C中,省略符号之前必须要有逗号;而在C++中,则没有这种强製要求。

定义可变参数函式

使用相同的文法来定义:

访问未命名的参数,首先必须在可变参数函式中声明va_list类型的变数。调用va_start并传入两个参数:第一个参数为va_list类型的变数,第二个为省略号前最后一个有名字的参数的名称,接着每一调用va_arg就会返回下一个参数,va_arg的第一个参数为va_list,第二个参数为返回的类型。最后va_end必须在函式返回前被va_list调用(va_list当作参数)(没有要求要读取完所有参数)。

C99提供额外的宏,va_copy,它能够复製va_list。而va_copy(va2, va1)函式作用为拷贝va1到va2。

没有机製定义该怎麽判别传递到函式的参数量或者资料类型。函式通常需要知道或确定它们变化的方法。共通的惯例包含:

使用printf或scanf类的格式化字串来嵌入明确指定的类型。

在可变参数最后的标记值(sentinel value)。

总数变数来指明可变参数的数量。

运算符

C++11中可变参数模板让您能建立则样的模板函式或模板类,即接受可变数量的参数。

声明方法: template //...

例如:

Java符号

在编写一个方法时,其参数随着程式运行的条件而变化,在编译期间无法确定。具体地讲,例如编写一个列印参加聚会party的程式,其中方法printInvitation()将根据作为参数的参加人姓名,列印邀请卡。但这个参数的数量事先并不确定。当然可以编写许多重载的方法来解决这个问题,如:

void printInvitation(String name);

void printInvitation(String name1, Stringname2);

void printInvitation(String name1, Stringname2, String name3);

问题是编写多少个重载的方法才可以解决给所有参加者列印邀请卡?也许需要改变您的程式设计,而使用数组或者连结表了。

套用可变参数可以方便、灵活地解决这类问题。例如:

void printInvitation(String...names) {

for (String name : names) {

makeCard(name); //调用方法按照姓名列印邀请卡

System.out.println("Recording info: invitation card has been printed for " + name);

}

}

这裏,(String...names)便是可变参数。它包括从0到任意个相同类型的参数。在编译期间,这个可变参数将被转换为字元串数组形式,即:void printInvitation(String names).

如下是调用这个方法的例子:

printInvitation("李刚", "David Smith");

printInvitation("Greg Wu", "Paul Nguyen", "Liu Wei", "张新");

printInvitation(); //无参数

当在无参数情况下调用这个方法时,将不执行任何这个方法中的代码。

如下是运行结果:

Recording info: invitation card has been printed for 李刚

Recording info: invitation card has been printed for David Smith

Recording info: invitation card has been printed for Greg Wu

Recording info: invitation card has been printed for Paul Nguyen

Recording info: invitation card has been printed for Liu Wei

Recording info: invitation card has been printed for 张新

相关词条

相关搜索

其它词条