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 请按任意键继续. . .