我正在学习指针。
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()
地址的地址吗? 最佳答案
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/