对于传递指针是如何工作的,我有点困惑。
假设我有以下函数和指针,并且...
编辑:
...I希望在函数中使用指向某个对象的指针作为参数。
即:
void Fun(int Pointer){
int Fun_Ptr = ---Passed Pointer---;
//So that Fun_Ptr points to whatever ---Passed Pointer points to
在*Pointer和&Pointer符号之间,我很困惑。我知道*Pointer的意思是给它所指向的任何东西。
我是否要在声明中放入void (int *指针)?当我使用这个函数的时候呢?
非常感谢您的帮助。
EDIT 2:
好了,我现在明白了,在声明中使用*变量意味着将传递一个指针。但是,当我使用这个函数的时候呢?
即
int main(){
int foo;
int *bar;
bar = foo;
Fun(bar);
}
EDIT 3:好的,如果我错了,请纠正我:
根据上述代码的约定:
bar = &foo表示:使bar指向内存中的foo
*bar = foo表示将bar指向的值更改为等于foo等于的值
如果我有第二个指针(int *oof),那么:
bar = oof表示: bar指向oof指针
bar = *oof表示: bar指向oof所指向的值,而不是oof指针本身
*bar = *oof表示:将bar指向的值更改为oof指向的值
&bar = &oof表示:将bar指向的内存地址更改为与oof指向的内存地址相同
我说的对吗?
编辑4:非常感谢你的帮助(我希望我能接受不止一个答案,但我不得不接受第一个答案。我不确定一个社区wiki到底是如何工作的,但我会把它留下来进行编辑(如果你喜欢,可以把它变成一个参考指南)。
https://stackoverflow.com/questions/3796181
复制相似问题