掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
本文主要介紹一些C語(yǔ)言的一些偏門知識(shí)給大家,在這里簡(jiǎn)單談一下C語(yǔ)言復(fù)合文字。需要讀者具備一定的C語(yǔ)言基礎(chǔ)。

創(chuàng)新互聯(lián)建站專注于都昌企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城系統(tǒng)網(wǎng)站開(kāi)發(fā)。都昌網(wǎng)站建設(shè)公司,為都昌等地區(qū)提供建站服務(wù)。全流程按需策劃,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務(wù)
前言
C99新增了復(fù)合文字(compound literal)。文字是非符號(hào)常量。例如:5是int類型的文字;82.3是float類型的文字等等。C99標(biāo)準(zhǔn)委員會(huì)認(rèn)為:如果又能夠表示數(shù)組和結(jié)構(gòu)內(nèi)容的復(fù)合文字,那么在編寫程序的時(shí)候要方便得多。
數(shù)組復(fù)合文字的定義方式
對(duì)于數(shù)組來(lái)說(shuō),復(fù)合文字看起來(lái)像是在數(shù)組的初始化列表前面加上用圓括號(hào)括起來(lái)的類型名。
- #include
- int main()
- {
- int iArray[]={10,20}; //普通數(shù)組
- int &pArray=(int []){10,20}; //一個(gè)復(fù)合文字
- //int &pArray=(int [2]){10,20}; 與上文等效
- return 0;
- }
解析:
復(fù)合文字充當(dāng)函數(shù)參數(shù)
復(fù)合文字也可以作為實(shí)際參數(shù)被傳遞給帶有類型與之匹配的形式參量的函數(shù)。如下測(cè)試案例:
- #include
- void print(int array[], int arrayNum)
- {
- for (int i = 0; i < arrayNum; i++)
- {
- printf("%d\t", array[i]);
- }
- }
- int main()
- {
- print((int[]){1,2,3,4,5,6}, 6);
- return 0;
- }
測(cè)試截圖如下:
此處第一個(gè)參數(shù)是包含6個(gè)元素的int型數(shù)組,同時(shí)也是首元素的地址(同數(shù)組名一樣)。這種給函數(shù)傳遞信息而不必先創(chuàng)建數(shù)組的做法,是復(fù)合常量的通常使用方法。
二維數(shù)組或多維數(shù)組中復(fù)合文字
這種技巧也可以用在處理二維數(shù)組或多維數(shù)組的函數(shù)中。例如,下面的代碼介紹如何創(chuàng)建一個(gè)二維int數(shù)組并保存其地址。
- #include
- int main()
- {
- int(*pArray)[4];//聲明一個(gè)數(shù)組指針
- pArray = (int[2][4]){ {1,2,3,-9},{4,5,6,-8} };
- return 0;
- }
二維數(shù)組或多維數(shù)組中復(fù)合文字
用如下結(jié)構(gòu)體復(fù)合文字用法。
- #include
- #include
- struct MM
- {
- char firstName[20];
- char secondName[20];
- };
- void getName(struct MM mm)
- {
- puts(strcat(mm.firstName, mm.secondName));
- }
- int main()
- {
- getName((struct MM) { "小", "可愛(ài)" }); //調(diào)用
- return 0;
- }
復(fù)合文字也可以取地址
- #include
- #include
- struct MM
- {
- char firstName[20];
- char secondName[20];
- };
- int main()
- {
- struct MM* pMM = &((struct MM) { "小", "可愛(ài)" }); //調(diào)用
- printf("%s%s\n", pMM->firstName, pMM->secondName);
- return 0;
- }
以上程序運(yùn)行結(jié)果打印:小可愛(ài)
總結(jié)
好了,復(fù)合文字就介紹到這里,大家可以先練習(xí)一下。

我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流