C++中的指针运算:

C++中的指针运算:
在C++中,有一种特殊的运算符与数据类型,也就是指针。指针具有灵活,能够传递与输出多个值的功能,常常与函数相结合,也可以轻松的处理数组中的元素,数组的声明其实就是声明其指针的位置。
声明一个指针:

int *p=&a;

这样的形式就可以声明一个指针了,也可以直接将数组的首字符的位置传递给指针作为赋值:

int A[10];
int *p=A

但是数组名是常量,其不是一个可以改变地址的指针,这个操作等同于:

int A[10];
int *p=&A[0]

而且很重要的一点是,当p++时,指针将会指向数组的下一个存储结构,于是,可以用指针来计算数组元素,而且指针直接指向数组地址,计算机不需要额外计算,减少计算资源:

int A[10], *p=A, num=0;
while (p!='\0') num++,p++;
cout<<num;

而且,对于字符串元素,该方式也可以同样处理,字符串其实就是一个char 数组,而且当要求字符串指针输出其指向的元素时,其指针会一直向下寻找,直至最后遇到空字符,这也就是说,对于字符串的打印、计数,指针都可以做到很好的运算。
在我们使用指针时,应该防止产生迷途指针,其指针会失去意义。

void fun()
{
 char c;
 p=&c;
}
void caller()
{
 fun();
 *p=2;//迷途指针。
}
int main()
{caller;
return 0;}

于是此时指针p,不再有意义,因为局部变量c在函数结束后已经消失,地址被消除,p没有元素对应。
为了防止指针更改目标值或者指针的地址被更改,可以const int *p,此时值不能通过该指针修改,但指针可以指向其他元素。int *const p,指针的指向不能改变,但其指向的元素若不是常量,可以通过改变其元素值。const int *const,指针的指向不能改变,也不能通过该指针来修改所指向的元素。
综上所述,指针在函数需要改变输入变量的值,或者是返回多个函数值时有着很好的调度作用,且在对字符串的处理,指针也可以很清晰直观的处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值