关于指针,引用以及地址和内容的问题
int *p=5;
int &x=p;
int *&d=p;
int s=2;
请问这几个定义中,*和&是什么意思?
p在内存中表示什么?
x在内存中表示什么?
d在内存中表示什么?
s在内存中表示什么?
各是表示地址,内容,指针中的什么,还是表示其他?
int *p=5;
int &x=p;
int *&d=p;
int s=2;
请问这几个定义中,*和&是什么意思?
p在内存中表示什么?
x在内存中表示什么?
d在内存中表示什么?
s在内存中表示什么?
各是表示地址,内容,指针中的什么,还是表示其他?
2019-05-16
代码不完整吧,如果就从这么几条代码来看,代码肯定是有错的。
//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;
举报