我正在学习指针。
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
中值&a
和cal(int*)
的含义是什么?
a
中的cal(int*)
代表a
中main()
的地址吗?
&a
中的cal(int*)
仅代表指向a
中main()
地址的地址吗?
答案 0 :(得分:1)
& a的价值是什么意思?
取a
的地址。这是通过将地址操作符&
应用于int
变量a
来完成的。
意味着什么?
内部cal()
a
表示调用int
时已传递cal()
的地址。
答案 1 :(得分:0)
在您的代码中,您有两个范围:
在主范围'a'是一个值为2的变量,以及一个指向它的指针。 您将指针传递给函数'cal'。
在cal范围'a'是作为main函数输入的指针。 & a将是指向指针的指针,相反,* a是指针指向的值(即2)。
答案 2 :(得分:0)
a
变量是一个整数变量。
函数cal()中的参数a
变量是指向整数的指针,它将指向或保存main()中变量 a
的地址。
in cal(int *)是否表示main()中的地址?
是强>
& a in cal(int *)是否只代表指向main()中地址的地址?
是强>
& a in cal()表示cal()中变量a
的地址,它在main()函数中保存a
的地址。
从您的示例中,您可能会对相同变量名称的使用感到困惑。但是范围仅限于各自的功能,并且它们不会发生冲突。