当前位置:编程学习 > C/C++ >>

C++的简单的入门级问题

定义 int *p = &a;   int *&b = p;

后一个语句怎么理解?我怎么也不明白,b是存放地址的吗?为什么还要加一个&表示引用?*再加上&表示什么?有什么作用?请大虾们讲解讲解,不要嘲笑我,我是C高手,但是在C++这行不通。多谢多谢。

追问:*和&是运算符吧?b先和谁结合?

还有为什么你说因此b的类型也是(int *)?

答案:详细讲解就是 int *p = &a;是定义了一个指针变量p  并把变量a 的地址赋给p  

int *&b = p; &和*的优先级是相同的,但按自右而左的方向结合,先进行&b运算 得到b的地址 在进行*运算 即&b所指向的变量 即p

这样推:

p的类型是(int *),因此b的类型也是(int *);

b前加一个&,就是说b是p的引用(也就是别名)。

 

int *p = &a;

这句话表示 定义一个int类型的指针p 存储a的地址

int *&b=p;

其实这句话的意思是 首先取出b的地址即 得到一个指针 然后采用间接寻址符号*

去访问&b指向的内存区域 并赋值为p的值

明白不

呵呵,这是简单的指针问题,b不是存放地址的,&b是b的地址,加个*就是指向b的地址,然后初始化为p,就这样解释!

我用的是VC++6.0编译器,结果上与“樹下野狐”有些出入。这个原因主要是编译器不同。*与&先后顺序处理不一样,所以结果不一样。

VC6.0 编译的时候,是定义一个int *类型的b,那就相当于&b=p,即&b=&a,所以a=b=4;

上一个:C++与C语言有什么不同?
下一个:求个C++程序设计.....谢谢

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,