还是自我调侃下,楼主C++菜鸟一个,写的不好的大家批评指正。
直接上代码
void cal(int *a,int *b){
b = a;}int _tmain(int argc, _TCHAR* argv[]){
int a,b;
a = 1;
cal(&a,&b);
return 0;}
这个例子有问题么,呵呵,那是显然的,不然楼主没必要说了,程序是得不到你想要的结果的。那么问题出在哪儿?处在很多人都想当然的人为指针传递就一定能改变函数调用处的值。可是当你仔细分析下下面这句话你就恍然大悟了:指针传递和值传递没有本质上区别依旧是传递的值,不过这个值是指针而已。那么你在调用函数中对指针的操作与值传递对值得操作不是一个意思么?
所以虽然你在调用函数中把b的地址指向了a,但是在上面的主函数中b实际指向地址依旧没变。so easy 不是么~