我仍然在努力理解* p,&p和p之间的区别。根据我的理解,*可以被认为是“指向的值”,而&可以被认为是“的地址”。换句话说,*保存值,而&保存地址。如果这是真的,那么*p和p之间的区别是什么?就像*p一样,p不是持有某物的值吗?
发布于 2012-03-12 11:10:58
*运算符用于间接寻址。间接性意味着p中的值被解释为内存地址,并加载该地址上的值。p是p的值,而*p是存储在p指向的内存位置中的值。当您希望间接访问整数i的值时,可以使用指向它的整数指针(int *p = &i),并使用该指针间接修改i的值(*p = 10)。
发布于 2012-03-12 11:13:20
我给你举个例子:int q=12; int *p=&q; int *pp; pp=&q;
从技术上讲,*和&不包含任何内容,因为它们都对变量进行操作。*将提取值,而&将提取地址。挖掘指针魔力的最好方法是调试。
发布于 2016-12-27 01:46:32
**Adress|Data**
00001 |12345-----|
00002 |45678 |
12345 |99887 <---|-------|
6757 |33431 |
9987 |22894<------------|
Print(&p)----->00001
Print(p)------>12345
print(*P)----->99887
Print(**p)---->22894https://stackoverflow.com/questions/9661293
复制相似问题