将指针传递给函数
Pass pointer to function
我正在学习指点
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)
。
我想知道 cal(int*)
中的值 a
和 &a
是什么意思?
cal(int*)
中的a
是否代表main()
中a
的地址?
难道cal(int*)
中的&a
只代表指向main()
中a
的地址的地址吗?
What does the value of &a mean?
获取a
的地址。这是通过将地址运算符 &
应用于 int
变量 a
.
来完成的
What does the value of a mean?
里面cal()
a
表示调用cal()
时传入的int
的地址。
在您的代码中,您有两个作用域:
在主作用域上 'a' 是一个值为 2 的变量,以及一个指向它的指针。
您将指针传递给函数 'cal'.
在 cal 作用域上 'a' 是作为 main 函数的输入给出的指针。 &a 将是指向指针的指针,相反 *a 是指针指向的值(即 2)。
a
main() 函数中的变量是整型变量。
a
函数 cal() 中的参数变量是指向整数的指针,它将指向或保存 main() 中变量 a
的地址。
cal(int*)中的a是否代表main()中a的地址?
是
cal(int*)中的&a是否只代表指向main()中a的地址的地址?
是
cal() 中的 &a 表示 cal() 中变量 a
的地址,它保存 main() 函数中 a
的地址。
从你的例子来看,你可能对相同变量的使用感到困惑names.But它们的范围仅限于各自的功能并且它们不冲突。
我正在学习指点
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)
。
我想知道 cal(int*)
中的值 a
和 &a
是什么意思?
cal(int*)
中的a
是否代表main()
中a
的地址?
难道cal(int*)
中的&a
只代表指向main()
中a
的地址的地址吗?
What does the value of &a mean?
获取a
的地址。这是通过将地址运算符 &
应用于 int
变量 a
.
What does the value of a mean?
里面cal()
a
表示调用cal()
时传入的int
的地址。
在您的代码中,您有两个作用域:
在主作用域上 'a' 是一个值为 2 的变量,以及一个指向它的指针。 您将指针传递给函数 'cal'.
在 cal 作用域上 'a' 是作为 main 函数的输入给出的指针。 &a 将是指向指针的指针,相反 *a 是指针指向的值(即 2)。
a
main() 函数中的变量是整型变量。
a
函数 cal() 中的参数变量是指向整数的指针,它将指向或保存 main() 中变量 a
的地址。
cal(int*)中的a是否代表main()中a的地址?
是
cal(int*)中的&a是否只代表指向main()中a的地址的地址?
是
cal() 中的&a 表示 cal() 中变量 a
的地址,它保存 main() 函数中 a
的地址。
从你的例子来看,你可能对相同变量的使用感到困惑names.But它们的范围仅限于各自的功能并且它们不冲突。