C++指针

本文详细介绍了C++中的引用返回、函数指针、指针变量声明、指针与数组的操作,包括一维和二维数组,以及指针数组和指向指针的指针等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1:返回引用的的函数。

和一般的函数相比,只要在返回值类型后加上&符号即可,函数就会返回return 后变量的的引用。
int array[5]={1,2,3,5,7};
 int& index(int i)
{
return array[i];
}
执行index(4)=3;以后array[[4]的值会赋值为3.

只能返回全局变量和静态变量,不能返回方法内部定义的变量-局部变量。

2:函数指针
顾名思义是函数的指针,函数指针定义形式为:返回类型(*指针变量名)(形参类型表)
如:int (*p) (int ,int);

另外:函数名就是函数的首地址。

3:指针变量的声明
数据类型 *变量名 =NULL 或0
如int *p= NULL或0 表示指针指向一片无效的不可访问的内存。

4:指针与数组
如:int a[]= {1,2};int *p=NULL; p=a;//a表示该片首地址。
现在p与a指向同一片地址,不过p是指针变量,a是常量指针。

4.1:使用指针操作二维数组
4.1.1:使用指向行的指针变量去操作二维数组
对于二维数组来说数组名表示第0行的首地址。即对于a[2][3]来说,a与&a[0]等价;而a[0]代表a的第一行的首地址与&a[0][0]等价。
指向行的指针变量声明方式如下:(具体说是指向行地址)
数据类型 (*指针变量名)[行长度];//说明指针变量是一个指向行的指针,仅此而已,这要注意和指针数组区别开来,指针数组声明方式是 数据类型 *指针变量名[行长度];没有括号。
如: int a[][2]={1,2};int(*p)[2]=NULL;p=a;
接下来p就可以代替a去访问a的元素了。
4.1.2:使用指针变量访问数组
由于不管是一维数组还是二维数组,在内存中都是连续的。
int a[][2]={1,2,3,4};int *p=NULL;p=a[0];
则p[0],p[1],p[2],p[3]分别就是a[0][0]等

5:指针数组
 数据类型 *指针变量名[行长度];
每个元素都是指向同一数据类型的指针变量

6:指向指针的指针
数据类型 **变量名

int main()
{
int i,j,a[][2]={1,2,3,4,5};
int *p[3];
int **pp;
for(i=0;i<3;i++)
p[i]=a[i];
pp=p;
for(i=0;i<3;i++)
{
for(j=0;j<2;j++)
cout<<*(*(pp+i)+j)<<" ";
cout<<endl;
}
return 0;





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zlingh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值