我刚刚开始学习c ++(我现在更像是一个java开发人员)并且使用指针时有些困惑...例如,以下代码可以正常工作
int main() {
int x = 5;
int * y;
y = &x; //note this line of code
*y = 10;
}
Run Code Online (Sandbox Code Playgroud)
而这段代码不起作用
int main() {
int x = 5;
int * y;
y = x;
*y = 10;
}
Run Code Online (Sandbox Code Playgroud)
有人可以向我解释为什么使用y = &x作品获取值"位置" 但是一旦我用它替换它y = x就会导致错误.如果有人知道对指针的一个很好的解释请分享链接:)
谢谢!
让我们看一下如何使用指针.
int x = 5;
Run Code Online (Sandbox Code Playgroud)
您将值5分配给x,即int.
int *y;
Run Code Online (Sandbox Code Playgroud)
你正在声明一个指向int的指针.
y = &x;
Run Code Online (Sandbox Code Playgroud)
现在,存储在y中的地址与x的地址相同.
但是,如果你这样做:y = x,你将一个整数(在这种情况下为5)分配给一个包含整数地址的变量.
最后,你必须记住:
& 是运算符的地址,可以读作"地址"* 是间接运算符,可以读作"指向的值"