C++中陣列的引用作為函式引數
阿新 • • 發佈:2019-01-10
#include <iostream> using namespace std; /* void fun(char (&buff)[11])//括號裡必須有11才不報錯 { cout<< buff; } */ template<size_t size> void fun(char (&buff)[size]) { cout<< buff; } int main(int argc, char *argv[]) { char buff[] = "helloworld"; fun(buff); return 0; } /* void fun(char (&buff)[11])跟void fun(char *&buff);完全是兩回事, c++的陣列型別是帶有長度資訊的,引用傳遞時如果指明是陣列則必須指定長度,char[]這種是不完全型別,在沒有別的條件來確定長度的情況下是不能當做一個型別來使用的 如果lz想接收任意長度的陣列,應當使用模板函式 template<size_t size> void fun(char (&buff)[size]) { cout<< buff; } */