为了账号安全,请及时绑定邮箱和手机立即绑定

关于指针,引用以及地址和内容的问题


int *p=5;

int &x=p;

int *&d=p;

int s=2;

请问这几个定义中,*和&是什么意思?

p在内存中表示什么?

x在内存中表示什么?

d在内存中表示什么?

s在内存中表示什么?

各是表示地址,内容,指针中的什么,还是表示其他?

正在回答

1 回答

代码不完整吧,如果就从这么几条代码来看,代码肯定是有错的。


//int *p = 5;// 代码错误,修改如下面两行:
int n = 5;
int *p = &n;// int *:声明p为指向int *类型()的指针。 &:取地址。 &n:取变量n的地址。

//int &x = p;// 代码错误,如要修改,用下一行的写法:
int *&d = p;// int *&:声明d为引用int *类型的引用,d就代表p这个指针。p:指向n的指针。

int s = 2;// s:变量名(在编译的时候编译器会把程序中出现的所有变量名都换成相对内存地址,变量名不占内存)


如果需要使用d这个int *指针的引用,如下:

// 输出p指向的变量n的值。 d和p一样,存放的是n的地址
cout << *d << endl;// 等于cout << *p << endl;




0 回复 有任何疑惑可以回复我~
#1

不是很开心 提问者

int *p;的意思是定义一个指针p变量是吗?p里面装的是地址吗?*只是说明定义的是指针变量是吗?我可以理解为*是取内容符号吗?
2019-05-16 回复 有任何疑惑可以回复我~
#2

no4990 回复 不是很开心 提问者

你应该先把站内所有C语言的课听完。p只是一个指针变量名。
2019-05-18 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之离港篇
  • 参与学习       122700    人
  • 解答问题       474    个

C++扫清通往面向对象的最后一道障碍,将所有知识点融会贯通

进入课程

关于指针,引用以及地址和内容的问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信