我正在学习指针。

int main() {
   int a = 2;
   cal(&a);
}

void cal(int* a) {
   //Here:
  //What does the value of a mean?
  //What does the value of &a mean?
}


如上所示,在main()中,我将a的地址传递给函数cal(int* a)

我想知道a中的值&acal(int*)是什么意思?

a中的cal(int*)代表amain()的地址吗?

&a中的cal(int*)仅代表指向amain()地址的地址吗?

最佳答案

main()函数中的a变量是整数变量。
在函数cal()中作为参数的a变量是指向整数的指针,该整数将指向或保存main()中的变量 a的地址。

in cal(int *)是否表示main()中a的地址?



cal(int *)中的&a是否仅表示指向main()中a的地址的地址?



cal()中的&a表示cal()中的变量a的地址,该变量在main()函数中保存a的地址。

从您的示例中,您可能会对相同的变量名的使用感到困惑。但是,范围仅限于各自的功能,并且它们不冲突。

关于c++ - 将指针传递给函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28602724/

10-11 23:04