不行,C++中 數(shù)組和枚舉都是不可以作為函數(shù)的返回類型來返回的,假如您想要實(shí)現(xiàn)返回?cái)?shù)組,您可以聲明一個(gè)結(jié)構(gòu),里面包含數(shù)組或者枚舉類型,然后返貨這個(gè)結(jié)構(gòu)類型或者指針
目前累計(jì)服務(wù)客戶近千家,積累了豐富的產(chǎn)品開發(fā)及服務(wù)經(jīng)驗(yàn)。以網(wǎng)站設(shè)計(jì)水平和技術(shù)實(shí)力,樹立企業(yè)形象,為客戶提供做網(wǎng)站、網(wǎng)站建設(shè)、網(wǎng)站策劃、網(wǎng)頁設(shè)計(jì)、網(wǎng)絡(luò)營銷、VI設(shè)計(jì)、網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。創(chuàng)新互聯(lián)公司始終以務(wù)實(shí)、誠信為根本,不斷創(chuàng)新和提高建站品質(zhì),通過對領(lǐng)先技術(shù)的掌握、對創(chuàng)意設(shè)計(jì)的研究、對客戶形象的視覺傳遞、對應(yīng)用系統(tǒng)的結(jié)合,為客戶提供更好的一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶,共同發(fā)展進(jìn)步。
曾經(jīng)有本很經(jīng)典的書就笑談到(貌似是《C++primer puls》):C和C++不允許返回?cái)?shù)組卻可以返貨帶數(shù)組的結(jié)構(gòu)體,這不是自己打自己巴掌么...
C語言支持一維數(shù)組和多維數(shù)組。如果一個(gè)數(shù)組的所有元素都不是數(shù)組,那么該數(shù)組稱為一維數(shù)組。
在C語言中使用數(shù)組必須先進(jìn)行定義,一維數(shù)組的定義方式為:類型說明符; 數(shù)組名 ;[常量表達(dá)式]。
其中,類型說明符是任一種基本數(shù)據(jù)類型或構(gòu)造數(shù)據(jù)類型。數(shù)組名是用戶定義的數(shù)組標(biāo)識(shí)符,方括號(hào)中的常量表達(dá)式表示數(shù)據(jù)元素的個(gè)數(shù),也稱為數(shù)組的長度。例如:
int a[10]; ?/* 說明整型數(shù)組a,有10個(gè)元素 */
float b[10], c[20]; ?/* 說明實(shí)型數(shù)組b,有10個(gè)元素,實(shí)型數(shù)組c,有20個(gè)元素 */
char ch[20]; ?/* 說明字符數(shù)組ch,有20個(gè)元素 */
對于數(shù)組類型說明應(yīng)注意以下幾點(diǎn):
1、數(shù)組的類型實(shí)際上是指數(shù)組元素的取值類型。對于同一個(gè)數(shù)組,其所有元素的數(shù)據(jù)類型都是相同的。
2、數(shù)組名的書寫規(guī)則應(yīng)符合標(biāo)識(shí)符的書寫規(guī)定。
3、數(shù)組名不能與其它變量名相同。例如:
int a;
float a[10];
是錯(cuò)誤的。
4、方括號(hào)中常量表達(dá)式表示數(shù)組元素的個(gè)數(shù),如a[5]表示數(shù)組a有5個(gè)元素。但是其下標(biāo)從0開始計(jì)算。因此5個(gè)元素分別為a[0], a[1], a[2], a[3], a[4]。
5、不能在方括號(hào)中用變量來表示元素的個(gè)數(shù),但是可以是符號(hào)常數(shù)或常量表達(dá)式。例如:
#define FD 5
// ...
int a[3+2],b[7+FD];
是合法的。但是下述說明方式是錯(cuò)誤的。
int n=5;
int a[n];
6、允許在同一個(gè)類型說明中,說明多個(gè)數(shù)組和多個(gè)變量。例如:
int a,b,c,d,k1[10],k2[20];
擴(kuò)展資料:
C語言是一門通用計(jì)算機(jī)編程語言,廣泛應(yīng)用于底層開發(fā)。C語言的設(shè)計(jì)目標(biāo)是提供一種能以簡易的方式編譯、處理低級存儲(chǔ)器、產(chǎn)生少量的機(jī)器碼以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平臺(tái)的特性,以一個(gè)標(biāo)準(zhǔn)規(guī)格寫出的C語言程序可在許多電腦平臺(tái)上進(jìn)行編譯,甚至包含一些嵌入式處理器(單片機(jī)或稱MCU)以及超級電腦等作業(yè)平臺(tái)。
二十世紀(jì)八十年代,為了避免各開發(fā)廠商用的C語言語法產(chǎn)生差異,由美國國家標(biāo)準(zhǔn)局為C語言制定了一套完整的美國國家標(biāo)準(zhǔn)語法,稱為ANSI C,作為C語言最初的標(biāo)準(zhǔn)。[1]目前2011年12月8日,國際標(biāo)準(zhǔn)化組織(ISO)和國際電工委員會(huì)(IEC)發(fā)布的C11標(biāo)準(zhǔn)是C語言的第三個(gè)官方標(biāo)準(zhǔn),也是C語言的最新標(biāo)準(zhǔn),該標(biāo)準(zhǔn)更好的支持了漢字函數(shù)名和漢字標(biāo)識(shí)符,一定程度上實(shí)現(xiàn)了漢字編程。
C語言是一門面向過程的計(jì)算機(jī)編程語言,與C++,Java等面向?qū)ο蟮木幊陶Z言有所不同。
其編譯器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
#includestdio.h
void Copy_string(char* str1, char* str2);? ?//函數(shù)聲明
int main()
{
char str1[20];
char str2[20];
puts("請輸入字符串str1:");
gets(str1);? ? ? ? ? ? ? ? ? ? ? ? ? ?//獲取從鍵盤輸入的字符串
Copy_string(str1, str2);
printf("字符串str2:%s\n",str2 );
return 0;
}
void Copy_string(char* str1, char* str2)? ? ?//自定義字符串連接函數(shù)
{
int i = 0;
while (str1[i] != 0)
{
str2[i] = str1[i];
i++;
}
str2[i] = '\0';? ? ? ? ? ? ? ? ? ? ? ? ?//添加字符串結(jié)束符
}
運(yùn)行結(jié)果:
擴(kuò)展資料
C字符串庫函數(shù),實(shí)現(xiàn)字符串復(fù)制函數(shù)strcpy
char *strcpy(char *strDest,const char *strSrc)//源字符串參數(shù)用const修飾,防止修改源字符串
{
assert(strDest!==NULLstrSrc!== NULL);//斷言
char *ad=strDest;//返回目標(biāo)地址
while((*strDest++=*strSrc++)!='\0')//'\0'
{
NULL;
}
return ad;
}
E
數(shù)組作為參數(shù)不需要標(biāo)示大小
A
數(shù)組參數(shù)在函數(shù)中要被隱式轉(zhuǎn)換為一個(gè)常量指針在使用
F
定義數(shù)組值為int
a[i]
這里的i應(yīng)該是一個(gè)編譯時(shí)期決定大小常量表達(dá)式。
函數(shù)不可以定義為數(shù)組,可以用函數(shù)指針來操作。
1.函數(shù)指針的數(shù)組定義方法:返回值類型( * 指針變量名[Number]) (形參列表)。
例如:
double add(double a,double b){}
double sub(double a,double b){}
double mul(double a,double b){}
double div1(double a,double b){}
double (*oper_func[])(double, double) = {add,sub,mul,div1};//函數(shù)指針的數(shù)組定義。
2.函數(shù)指針是指向函數(shù)的指針變量。 因而“函數(shù)指針”本身首先應(yīng)是指針變量,只不過該指針變量指向函數(shù)。這正如用指針變量可指向整型變量、字符型、數(shù)組一樣,這里是指向函數(shù)。
C在編譯時(shí),每一個(gè)函數(shù)都有一個(gè)入口地址,該入口地址就是函數(shù)指針?biāo)赶虻牡刂贰S辛酥赶蚝瘮?shù)的指針變量后,可用該指針變量調(diào)用函數(shù)。
擴(kuò)展資料:
指針函數(shù)和函數(shù)指針的區(qū)別:
這兩個(gè)概念都是簡稱,指針函數(shù)是指返回值是指針的函數(shù),即本質(zhì)是一個(gè)函數(shù)。我們知道函數(shù)都有返回類型(如果不返回值,則為無值型),只不過指針函數(shù)返回類型是某一類型的指針。其定義格式如下所示:返回類型標(biāo)識(shí)符*函數(shù)名稱。
返回類型可以是任何基本類型和復(fù)合類型。返回指針的函數(shù)的用途十分廣泛。事實(shí)上,每一個(gè)函數(shù),即使它不帶有返回某種類型的指針,它本身都有一個(gè)入口地址,該地址相當(dāng)于一個(gè)指針。比如函數(shù)返回一個(gè)整型值,實(shí)際上也相當(dāng)于返回一個(gè)指針變量的值,不過這時(shí)的變量是函數(shù)本身而已,而整個(gè)函數(shù)相當(dāng)于一個(gè)“變量”。
參考資料:百度百科 -?函數(shù)指針
函數(shù)不可以定義為數(shù)組,可以用函數(shù)指針來操作。
1.函數(shù)指針的數(shù)組定義方法:返回值類型( * 指針變量名[Number]) (形參列表)。例如:double add(double a,double b){};double sub(double a,double b){};double mul(double a,double b){};double div1(double a,double b){};double (*oper_func[])(double, double) = {add,sub,mul,div1};//函數(shù)指針的數(shù)組定義2.函數(shù)指針是指向函數(shù)的指針變量。 因而“函數(shù)指針”本身首先應(yīng)是指針變量,只不過該指針變量指向函數(shù)。這正如用指針變量可指向整型變量、字符型、數(shù)組一樣,這里是指向函數(shù)。C在編譯時(shí),每一個(gè)函數(shù)都有一個(gè)入口地址,該入口地址就是函數(shù)指針?biāo)赶虻牡刂?。有了指向函?shù)的指針變量后,可用該指針變量調(diào)用函數(shù),就如同用指針變量可引用其他類型變量一樣,在這些概念上是大體一致的。函數(shù)指針有兩個(gè)用途:調(diào)用函數(shù)和做函數(shù)的參數(shù)。3.函數(shù)指針的聲明方法為:返回值類型( * 指針變量名) (形參列表);“返回值類型”說明函數(shù)的返回類型,“( * 指針變量名)”中的括號(hào)不能省,括號(hào)改變了運(yùn)算符的優(yōu)先級。若省略整體則成為一個(gè)函數(shù)說明,說明了一個(gè)返回的數(shù)據(jù)類型是指針的函數(shù),后面的“形參列表”表示指針變量指向的函數(shù)所帶的參數(shù)列表。例如:int func(int x); /* 聲明一個(gè)函數(shù) */int (*f) (int x); /* 聲明一個(gè)函數(shù)指針 */f = func; /* 將func函數(shù)的首地址賦給指針f */或者使用下面的方法將函數(shù)地址賦給函數(shù)指針:f = func;賦值時(shí)函數(shù)func不帶括號(hào),也不帶參數(shù),由于func代表函數(shù)的首地址,因此經(jīng)過賦值以后,指針f就指向函數(shù)func(x)的代碼的首地址。例子:
#includestdio.hint max(int x,int y){return (xy? x:y);}int main(){ int (*ptr)(int, int); int a, b, c; ptr = max; scanf("%d%d", a, b); c = (*ptr)(a,b); printf("a=%d, b=%d, max=%d", a, b, c); return 0;}