C++指针的一些小实践

今天在做一个关于安卓的NDK程序时候,用到自带的库函数时,关于C++指针的问题,当传递的参数是指针的指针时候。看个例子吧

#include<iostream>
#include<cmath>
#include<CSTDLIB>
using namespace std;

#include<windows.h>
using namespace std;
int a=10,b,c;


void fun(int *i)
{
	i=&a;//*i=10;
}

void main()
{
	int j=1;
	fun(&j);
	cout<<j<<endl;
}

关于上面的程序,对于传值参数的理解要吃透,对于指针作为传值参数,传值参数都是先复制后使用,那为什么指针传值会改变指针指向的值呢,那是因为你复制的是地址的变量。

就像上面的程序,你改变了i的值,那你对*i再做任何改变,也不会改变j的值了。可能对于高手来说,这不算什么,但对于菜鸟的我来说,这才是成长的脚步。

其实香江的是双指针问题,例如传值是fun(int **i),你可以在主程序中定义int *j,然后调用fun(&j),而不用在主程序中定义双指针变量了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值