c++指针类型的函数
下面随笔将讲述c++指针类型的函数。
原创链接:https://www.cnblogs.com/iFrank/p/14444379.html
指针类型的函数
若函数的返回值是指针,该函数就是指针类型的函数。
指针函数的定义形式
存储类型 数据类型 *函数名() { //函数体语句 }
1 错误的例子 2 3 int main(){ 4 int* function(); 5 int* ptr= function(); 6 *prt=5; //危险的访问! 7 return 0; 8 } 9 int* function(){ 10 int local=0; //非静态局部变量作用域和寿命都仅限于本函数体内 11 return &local; 12 }//函数运行结束时,变量local被释
1 正确的例子1 2 3 #include 4 using namespace std; 5 int main(){ 6 int array[10]; //主函数中定义的数组 7 int* search(int* a, int num); 8 for(int i=0; i<10; i++) 9 cin>>array[i]; 10 int* zeroptr= search(array, 10); //将主函数中数组的首地址传给子函数 11 return 0; 12 } 13 int* search(int* a, int num){ //指针a指向主函数中定义的数组 14 for(int i=0; i<num; i++) 15 if(a[i]==0) 16 return &a[i]; //返回的地址指向的元素是在主函数中定义的 17 }//函数运行结束时,a[i]的地址仍有
1 正确的例子2 2 3 #includeusing namespace std; 4 int main(){ 5 int* newintvar(); 6 int* intptr= newintvar(); 7 *intptr=5; //访问的是合法有效的地址 8 delete intptr; //如果忘记在这里释放,会造成内存泄漏 9 return 0; 10 } 11 int* newintvar (){ 12 int* p=new int(); 13 return p; //返回的地址指向的是动态分配的空间 14 }//函数运行结束时,p中的地址仍有效 15
天空飘来五个字,那都不是事