在函数里调用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 }