问题(Question):
最近刚开始自学程式语言
C语言的指标和参考(头疼啊~)
就以我的理解是以下:
1.int *p;
意指 p是一个指向另一个整数变量的内存位置的整数指标变量
2.
int m = 0;
int &n = m;
意指 n是m的别名(alias),也就是说n代表m这个变量
3.问题:
如下方网址之程式码
跑出的结果如下附图
前三行是
iptr = 0x7ffc59161654
&iptr = 0x7ffc59161658
*iptr = 5
想请问第二行&iptr的内存位址与iptr内存位址,为什么会不一样?
而&是取址,*是取值,
因为&iptr是“iptr所指向的内存位址”的参考,
也就是&iptr是iptr的别名?
而这个别名&iptr变量在另一个内存的位置储存在0x7ffc59161658
与iptr本名储存在内存的位置不同,
而&iptr的内存“内容”则是记录了iptr指向“i”的内存位置,
因此,&iptr在内存0x7ffc59161658
所存的内容为0x7ffc59161654 ?
是这样理解的吗?
程式码(Code):(请善用置底文网页, 记得排版,禁止使用图档)
https://ideone.com/rWF65Z
补充说明(Supplement):