void foo(int * ptr){
*ptr = 9;
}
void foo2(int *& ptr){
*ptr = 10;
}
int main()
{
int *t,a =1;
t = &a;
printf("t:%d\n",*t);
foo(t);
printf("foo:%d\n",*t);
foo2(t);
printf("foo2:%d\n",*t);
return 0;
}
-----
结果:
t:1
foo:9
foo2:10
网上的答案都看过了,不要复制粘贴
好像懂了。
*:
指针的变量,传入的只是地址值,不能改变原指针所指地址。只想改变所指对象值时使用。
*&:
&是C++内容,*&表示指针的引用,操作它即操作原指针。即可改变原指对象的值,又可改变原指针所指对象。