关于C++引用的问题

red9ueen 2012-05-18 02:05:15
“没有引用的指针”一句是什么意思
即int a;
int &b=a;
int * p=b;//是错误的?

那为什么
int * p;
int a;
int &b=a;
p=&b; //这不就是引用的指针么?
以上代码又是可以的呢?

求解答 感谢
...全文
256 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
笨蛋糕 2012-05-31
  • 打赏
  • 举报
回复
&引用
&取地址
wizard_tiger 2012-05-29
  • 打赏
  • 举报
回复
一个是取地址;一个是引用。
fzamygsd 2012-05-29
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 的回复:]
个人理解,不存在这种类型:
int & * p; // 指向引用的指针
error: cannot declare pointer to int&
但存在这种类型:
int * & p; // 对指针的引用

原因就是引用的特殊语法和语义。
[/Quote]
  • 打赏
  • 举报
回复
引用 3 楼 的回复:
引用 1 楼 的回复:

int a;
int &b=a;
int * p=b;// 这里的p 是个指针变量, 而b是a的一个别名, 不能赋值给指针变量, 指针变量只能赋地址值。
所以这句是错误的。

int * p;
int a;
int &b=a;
p=&b; //这里的 &b 代表把b的地址值赋值给p, 看来……

“感谢回复 我看见书上的一句话有些不解“没有引用的指针“,它给的列子就是int * p=b,我感觉这语句就是错的啊,这本书出现的错误挺多,我也不敢肯定,故来询问,int * p=&b 不就是指向引用的指针么?”
按一楼的说法来理解,这里的p不是指向引用的指针,而是指向一个地址的指针
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
引用 1 楼 的回复:

int a;
int &b=a;
int * p=b;// 这里的p 是个指针变量, 而b是a的一个别名, 不能赋值给指针变量, 指针变量只能赋地址值。
所以这句是错误的。

int * p;
int a;
int &b=a;
p=&b; //这里的 &b 代表把b的地址值赋值给p, 看来……
[/Quote]
按一楼的说法来理解,这里的p不是指向引用的指针,而是指向一个地址的指针
  • 打赏
  • 举报
回复

按一楼的说法来理解,这里的p不是指向引用的指针,而是指向一个地址的指针
feidegengao 2012-05-28
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]
C/C++ code

“没有引用的指针”一句是什么意思
例如
int i = 0;
int &ref = i;
int & *error = &ref;//语法解析:error是指针,指向的类型是int引用类型,“没有引用的指针”就是说这种语法是错误的
[/Quote]
++
moonlightscar 2012-05-26
  • 打赏
  • 举报
回复
int a;
int &b = a;
int *p = &b;
这样就对了
ForestDB 2012-05-24
  • 打赏
  • 举报
回复
个人理解,不存在这种类型:
int & * p; // 指向引用的指针
error: cannot declare pointer to int&
但存在这种类型:
int * & p; // 对指针的引用

原因就是引用的特殊语法和语义。
wlnju 2012-05-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

int a;
int &b=a;
int * p=b;// 这里的p 是个指针变量, 而b是a的一个别名, 不能赋值给指针变量, 指针变量只能赋地址值。
所以这句是错误的。

int * p;
int a;
int &b=a;
p=&b; //这里的 &b 代表把b的地址值赋值给p, 看来你是没有把 & 的作用搞清楚,

&……
[/Quote]

+1,主要是新手要注意 int *p = &a; 和 p = &a; 这俩哥们,话说当年我也花了一些时间来研究。
abc515952853 2012-05-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
int a;
int &b=a;
int * p=b;// 这里的p 是个指针变量, 而b是a的一个别名, 不能赋值给指针变量, 指针变量只能赋地址值。
所以这句是错误的。

int * p;
int a;
int &b=a;
p=&b; //这里的 &b 代表把b的地址值赋值给p, 看来你是没有把 & 的作用搞清楚,

&在等……
[/Quote]




顶一个
hello_world000 2012-05-24
  • 打赏
  • 举报
回复

“没有引用的指针”一句是什么意思
例如
int i = 0;
int &ref = i;
int & *error = &ref;//语法解析:error是指针,指向的类型是int引用类型,“没有引用的指针”就是说这种语法是错误的
pathuang68 2012-05-24
  • 打赏
  • 举报
回复
晚安苏州 2012-05-19
  • 打赏
  • 举报
回复
1楼正解
TROYWANGMIAO 2012-05-18
  • 打赏
  • 举报
回复
我感觉“没有引用的指针”是指不能直接给引用名附指针吧
而int * p=&b 虽然b是a的引用 但是p指向的是b的地址
我也不是特别清楚 我也等大神回复了
red9ueen 2012-05-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

引用 1 楼 的回复:

int a;
int &b=a;
int * p=b;// 这里的p 是个指针变量, 而b是a的一个别名, 不能赋值给指针变量, 指针变量只能赋地址值。
所以这句是错误的。

int * p;
int a;
int &b=a;
p=&b; //这里的 &b 代表把b的地址值赋值给p, ……
[/Quote]

一楼没有回答我的问题啊 5555
red9ueen 2012-05-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

弄清楚&什么时候作为取地址用
[/Quote]
&什么时候是地址符,什么时候是引用声明符,我很清楚
W170532934 2012-05-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

int a;
int &b=a;
int * p=b;// 这里的p 是个指针变量, 而b是a的一个别名, 不能赋值给指针变量, 指针变量只能赋地址值。
所以这句是错误的。

int * p;
int a;
int &b=a;
p=&b; //这里的 &b 代表把b的地址值赋值给p, 看来你是没有把 & 的作用搞清楚,

&……
[/Quote]
+++
red9ueen 2012-05-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

int a;
int &b=a;
int * p=b;// 这里的p 是个指针变量, 而b是a的一个别名, 不能赋值给指针变量, 指针变量只能赋地址值。
所以这句是错误的。

int * p;
int a;
int &b=a;
p=&b; //这里的 &b 代表把b的地址值赋值给p, 看来你是没有把 & 的作用搞清楚,

&……
[/Quote]

感谢回复 我看见书上的一句话有些不解“没有引用的指针“,它给的列子就是int * p=b,我感觉这语句就是错的啊,这本书出现的错误挺多,我也不敢肯定,故来询问,int * p=&b 不就是指向引用的指针么?
peng_weida 2012-05-18
  • 打赏
  • 举报
回复
弄清楚&什么时候作为取地址用
加载更多回复(1)

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧