3、是參數(shù)類型、參數(shù)個數(shù)不一樣就能構(gòu)成函數(shù)的重載呀?。?!這個是個自己記錯了,以為函數(shù)返回值不一樣也能構(gòu)成重載,其實如果只是函數(shù)返回值不一樣的話,編譯器不能確認(rèn)去匹配哪一個函數(shù),編譯就會出現(xiàn)錯誤。3.宏的問題(MTK一道筆試題)#definecall(x,y)x##yintx=10,y=5,xy=30;求x+y+call(x,y)當(dāng)時就暈了,不懂哇,其實以前見過這種##的,當(dāng)時完全記不得了,不牢固哇。其實x##y就是xy,所以這個題答案應(yīng)該是:452.字符串提取數(shù)字完成函數(shù)voidtake_num(constchar*strIn,int*n
4、,unsignedint*outArray)如輸入strIn="ab00cd+123fght456-25??3.005fgh"輸出n=6outArray={0,123,456,25,3,5}不考慮小數(shù)如3.005輸出3和5題目分析:將字符串轉(zhuǎn)換成uint,按公式temp=0;temp=temp*10;temp+=str[i]-'0';一直循環(huán)。對于一個數(shù),如果前面是0的話,那么按上面公式也會把0去掉的,也就是會從第一個非零的數(shù)開始計數(shù)。比如005,temp=0;temp=temp*10(temp=0);temp+=str[i]-'0'
5、(temp=0);當(dāng)i=i+1時,按上面過程計算,仍然有temp=0,直到第一個非零的數(shù)字出現(xiàn),這也正符合數(shù)的形式。[cpp]viewplaincopy1.#include???2.#include???3.#include???4.void?take_num(const?char?*strIn,?int?*n,?unsigned?int?*outArray)??5.{??6.????assert(strIn!=NULL?&&?n!=NULL?&&?outArray!=NULL
6、);??1.????int?nCount=0;??2.????int?lent=strlen(strIn);??3.????int?temp=0;??4.????bool?IsNum=false;??5.????for?(int?i=0;i='0'&&?strIn[i]<='9')??8.????????{??9.????????????IsNum=true;??10.????????????temp=temp*10;??11.??????????
7、??temp+=strIn[i]-'0';??12.????????}??13.????????else??14.????????????if?(IsNum)??15.????????????{??16.????????????????outArray[nCount]=temp;??17.????????????????nCount++;??18.????????????????IsNum=false;??19.????????????????temp=0;??20.????????????}??21.????}??22.????if
8、?(IsNum)???///////一定要對最后一個進(jìn)行判斷,否則就會丟失最后一個數(shù)的信心??23.????{??24.????????outArray[nCount]=temp;??25.????????nCount+