将指针传递给函数

时间:2015-02-19 09:28:40

标签: c++ c pointers function-pointers

我正在学习指针。

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()地址的地址吗?

3 个答案:

答案 0 :(得分:1)

  

& a的价值是什么意思?

a的地址。这是通过将地址操作符&应用于int变量a来完成的。

  

意味着什么?

内部cal() a表示调用int时已传递cal()的地址。

答案 1 :(得分:0)

在您的代码中,您有两个范围:

在主范围'a'是一个值为2的变量,以及一个指向它的指针。 您将指针传递给函数'cal'。

在cal范围'a'是作为main函数输入的指针。 & a将是指向指针的指针,相反,* a是指针指向的值(即2)。

答案 2 :(得分:0)

main()函数中的

a变量是一个整数变量。 函数cal()中的参数a变量是指向整数的指针,它将指向或保存main()中变量 a的地址。

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

& a in cal(int *)是否只代表指向main()中地址的地址?

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

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