C++指向函數的指針做函數參數ios
學到這裏的讀者應該知道在C語言中,函數指針變量常見的用途之一是做爲函數的參數,將函數名傳給其餘函數的形參,這樣能夠在調用一個函數的過程當中根據給定的不一樣實參調用不一樣的函數,在C++中一樣如此。
C++返回指針值的函數在C++中,一個函數能夠帶回一個整型值、字符值、實型值 等,也能夠帶回指針型的數據,即地址,帶回的值的類型是指針類型,返回指針值的函數簡稱爲指針函數。 定義指針函數的通常形式爲 類型名 *函數名(參數列表);
C++指針數組在C++中,若是一個數組,其元素均爲指針類型數據,該數組稱爲指針數組,也就是說,指針數組中的每個元 素至關於一個指針變量,它的值都是地址。一維指針數組的定義形式爲 類型名 *數組名 [數組長度];
int *point[5];能夠用指針數組中各個元素分別指向若干個字符串,使字符串處理更加方便靈活。
經典案例:C++實現若干字符串按字母順序由小到大輸出。#include<iostream>//預處理 #include<string> using namespace std;//命名空間 int main()//主函數 { void sort(char *name[],int number);//函數聲明 void print(char *name[],int number);//函數聲明 char *name[]={"Base","For","CAJ","Pascal","COBOL"};//定義指針數組且賦初值 int number=5;//定義整型變量 sort(name,number);//調用sort函數 print(name,number);//調用print函數 return 0; //函數返回值爲0; } void sort(char *name[],int number)//自定義排序函數 { char *temp;//定義中間變量 int i,j,k;//定義整型變量 for(i=0;i<number-1;i++)//外層for循環 { k=i;//每次循環把i的值賦給k for(j=i+1;j<number;j++)//內層循環 { if(strcmp(name[k],name[j])>0)//比較兩個字符串是否相等 { k=j; } if(k!=i)//k不等於i時 { temp=name[i]; //交換值 name[i]=name[k]; name[k]=temp; } } } } void print(char *name[],int number)//自定義打印函數 { int i;//定義整型變量 for(i=0;i<number;i++)//for循環 { cout<<name[i]<<endl;//輸出結果 } }執行本程序以後,會輸出:Base CAJ COBOL For Pascal -------------------------------- Process exited after 1.78 seconds with return value 0 請按任意鍵繼續. . .