快速的问题所以,我有这样的代码片段:关于指针
int * iPtr ;
int * jPtr ;
int i = 5, k = 7;
iPtr = &i;
jPtr = iPtr ;
我刚开始学习关于指针,并需要得到清有些疑惑。
- 现在jPtr本质上也指向我吗?
- 我知道我可以通过使用* iPtr来改变i的值,但是我怎样才能改变jPtr指向的对象的值呢?
- 如何更改由jPtr指向的对象会影响iPtr指向的对象的值,而我呢?
快速的问题所以,我有这样的代码片段:关于指针
int * iPtr ;
int * jPtr ;
int i = 5, k = 7;
iPtr = &i;
jPtr = iPtr ;
我刚开始学习关于指针,并需要得到清有些疑惑。
1000 1001 1002 1004 --> address location (note: just indicative)
----------------------------
| 5 | 7 | 1000 | 1000 |
| i | j | iPtr | jPtr |
-----------------------------
^^ | |
||________| |
|_________________|
iPtr=&i; --> iPtr points to i ==> address of i is stored in iPtr ==> *iPtr contents of i
jPtr=iPtr; ->jPtr points to i
+1(对于相当) – Adam 2010-05-14 02:38:12
至少,这就是我所记得的。我只是回到这个东西。
jPtr
所指向的相同的存储器地址为iPtr
在给定片段的末尾。因此,您可以使用*jPtr
或*iPtr
更改i
。jPtr
持有i
的内存地址,如果你改变*jPtr
,你正在改变i
作为一个直接结果,改变*iPtr
值。*jptr=42
问题1
是。
问题2
*jPtr = ...
问题3
不会。
1:是的,这被称为指针别名。 2:与使用* iPtr更改值相同,可以使用* jPtr更改i的值。
3:由于指针是别名,意思是指向同一个对象,改变iPtr指向的对象的值,也会改变jPtr指向的对象的值,因为它们指向相同的对象目的。
我不是关键,但你也许可以回答大多数问题的一个简单的std ::法院<< * IPTR等 – Adam 2010-05-14 02:39:49