一维数组的引用和二维数组的引用以及函数指针的引用

#include<iostream>
using namespace std;
#include<stdlib.h>
void main()
{
int a[10] = { 1,2,3,4,5,6,7,8,9,10 };
int(&ra)[10](a);//一维数组的引用
int i = 1;
for (auto data : ra)
{
data += i;
//i++;
cout << data << endl;
}
system("pause");

}

其中int(&ra)[10](a);就是对一维数组的引用。引用就是给原来的变量起了一个别名。



void main()
{
int a[2] [5]= { 1,2,3,4,5,6,7,8,9,10 };
int(&ra)[2][5](a);//二维数组的引用
system("pause");

}

其中int(&ra)[2][5](a);是对二维数组的引用

void main()

{
int(*p)(int a, int b)(jia);//定义一个函数指针
cout << p(1, 2) << endl;
int(*&rp)(int a, int b)(p);//定义函数指针的引用
rp = jian;
cout << p(1, 2) << endl;
system("pause");

}

其中int(*p)(int a, int b)是定义一个函数指针,int(*p)(int a, int b)(jia)是一个初始化了的函数指针

int(*&rp)(int a, int b)(p)是对函数指针的引用,并且用函数指针p初始化

这种()只有在初始化的时候使用,赋值的时候还是需要使用赋值号=;



void change(int(*&rp)(int, int))//函数指针的引用做参数;
{
rp = jian;

}

int(*&changep(int(*&rp)(int, int)))(int, int)//函数指针的引用做参数且返回函数指针的引用
{
rp = jian;
return rp;

}

具体步骤:int(*&)(int,int)这是一个框架,因为要返回一个函数指针的引用,所以将

changep(int(*&rp)(int, int))放入*&后面形成返回值,得到int(*&changep(int(*&rp)(int, int)))(int, int)


int &p[4] = { &a,&b,&c };//引用数组是非法的,引用数组的意思就是一个引用数组里面都是引用
int *p[4] = { &a,&b,&c };//指针数组是允许的,指针数组的意思是一个指针数组里面都是引用

猜你喜欢

转载自blog.csdn.net/qianyayun19921028/article/details/80918558