- 中文名
- ...
- 用 途
- 等同於“..”,“汗...”“寒.."
- 含 義
- 無語、無奈、被嚇到的意思
- 性 質
- 英文中的省略號等
...用法
編輯1、英文中的省略號。
3、在Windows操作系統中"運行"對話框鍵入"..."可打開”文件資源管理器“。
4、在網絡聊天中, “...”通常可以表示無語、被冷到、被傷到、被寒到等等諸多感受,或在無話可説無感受時回覆發言者.
5、用途——等同於“..”,“汗..”“寒..”即無語、被雷到的意思……
...運算符
編輯...C語言中
聲明可變參數函數
int check(int a, double b, ...);
可變參數函數最少要有一個命名的參數,所以
char *wrong(...);
在C中是不被允許的(在C++中,這樣的聲明是合理的)。C中,省略符號之前必須要有逗號;而在C++中,則沒有這種強制要求。
定義可變參數函數
使用相同的語法來定義:
longfunc(char,double,int,...); longfunc(chara,doubleb,intc,...) /*...*/ //在C的舊形式中可能會出現較省略的函數定義: longfunc(); chara; doubleb; longfunc(a,b,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。
沒有機制定義該怎麼判別傳遞到函數的參數量或者數據類型。函數通常需要知道或確定它們變化的方法。共通的慣例包含:
在可變參數最後的標記值(sentinel value)。
總數變量來指明可變參數的數量。
...C++中
聲明方法: template <typename... Types> //...
例如:
template<typenameT,typename...Args> voidshow_list(Tvalue,Args...args) cout<<value<<endl; show_list(args);//遞歸調用,顯示下一項
...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 張新