一个关于指针的有关问题,求解
一个关于指针的问题,求解
代码如上,我总感觉pY变成了野指针,但是打出pY的时候,它仍是3,好像get方法并没有实现它的功能,感觉是实参和形参在传递的时候有什么规则我不是很清楚,求讲解,先谢谢各位,顺祝周末愉快
------解决方案--------------------
函数原型这样写就好理解了:int Get(int* pX);
传入的指针是不会改变的,pY还是&xx。
这个函数只可以改变的是指针里的内容,而函数中没有改变指针的内容,所以打印pY仍是3。
- C/C++ code
int Get(int *pX) { int y = 8; y = y - *pX; pX = &y; return 0; } int main() { int xx = 3; int *pY; pY = &xx; Get(pY); printf("%d", *pY); return 0 }
代码如上,我总感觉pY变成了野指针,但是打出pY的时候,它仍是3,好像get方法并没有实现它的功能,感觉是实参和形参在传递的时候有什么规则我不是很清楚,求讲解,先谢谢各位,顺祝周末愉快
------解决方案--------------------
函数原型这样写就好理解了:int Get(int* pX);
传入的指针是不会改变的,pY还是&xx。
这个函数只可以改变的是指针里的内容,而函数中没有改变指针的内容,所以打印pY仍是3。