C++指针的一个问题

来源:百度知道 编辑:UC知道 时间:2024/07/05 13:44:08
书上说
*出现在执行语句或声明语句的初值表达式中作为一元运算符时,表示访问指针所指对象的内容。
那么请问,以下语句:
int b;
int *a=&b;
这两个语句是正确的吧,按照它说的,*出现在声明语句的初值表达式中,表示访问指针所指对象的内容,但这里却是将变量b的地址(&b)赋给他,既然是它所指的对象的内容,怎么能赋地址值呢?我看好几本书上说的都是那样,请问这是什么意思呢???谢谢!

在声明时候*不代表从地址取值

声明的时候只是说明这个是个指针变量

而这样的用法只有声明里可以

这叫定义嘛!
这样想:
int b;
int *a;
a=&b;
就行了。

理解有出入。
int *a=&b;
上式分开来是:
int *a;
a=&b;
而不是*a=&b;最好不要这样写;

这里的*在声明变量时使用,表示这是一个指针变量,在这里是指向int类型的指针,而不是对a取内容

int b;
int *a=&b;
等价于:
int b;
int *a;
a=&b;
是先定伊了一个int型变量b,然后定义了一个指针型变量,指针变量a指向b;这就是指针灵活性的一个体现,指针很神奇的。。。