一杯清酒邀明月
天下本无事,庸人扰之而烦耳。

在函数里调用new语句为某种对象或某种基本数据类型分配一块内存,再把那块内存的地址返回给程序的主代码,主代码将使用那块内存并在完成有关操作后立刻释放。

实例1:函数或方法返回内存

 1 #include <iostream>
 2 using namespace std;
 3 
 4 int *newInt(int value);//声明一个函数,由int *知其返回值为指向整型的一个地址 
 5 int main()
 6 {
 7     int *x = newInt(20);//定义指针类型x 
 8     
 9     cout << *x;
10     delete x;//释放地址 
11     x = NULL;//指针填充NULL 
12     
13     return 0;
14  } 
15  
16  int *newInt(int value)
17  {
18      int *myInt = new int;//申请一个整型内存块(4个字节),并将指针(myInt)指向内存块的地址 
19      *myInt = value;//解引用,赋值 
20      
21      return myInt;
22  }

函数指针:指向函数首地址的指针变量称为函数指针。

 1 #include <stdio.h>
 2 
 3 int fun(int x, int y);
 4 
 5 int main()
 6 {
 7     int i,a,b;
 8     int (*p)();  //声明函数指针
 9     
10     p = fun; //给函数指针p赋值,使它指向函数fun
11     
12     printf("请输十个数字:\n");
13     
14     for(i=0;i<10;i++)
15     {
16         scanf("%d",&b);
17         a = (*p)(a,b);  //通过指针p调用函数fun 
18      } 
19      
20      printf("The Max Number is:%d",a);
21      
22      return 0;
23  } 
24  
25  fun(int x,int y)
26  {
27      int z;
28      
29      z = (x>y)?x:y;
30      
31      return(z);
32  }

指针函数:一个函数可以带回一个整型数据的值,字符类型值和实型类型的值,还可以带回指针类型的数据,使其指向某个地址单元。

实例2:函数指针

 1 #include <iostream>
 2 
 3 using namespace std; 
 4 
 5 int *newInt(int value);//声明一个指针函数,其返回值为一个地址 
 6 
 7 int main()
 8 {
 9     int *x = newInt(20);//新建一个整型变量空间,并将x指针指向这个空间 
10     
11     cout << *x;
12     delete x;
13     x = NULL;
14     
15     return 0;
16  } 
17 
18 int *newInt(int value)//指针函数的具体实现 
19 {
20     int *myInt = new int;
21     *myInt = value;
22     
23     return myInt;
24 }
posted on 2023-08-18 15:13  一杯清酒邀明月  阅读(47)  评论(0编辑  收藏  举报