【发布时间】:2012-09-10 22:12:40
【问题描述】:
对不起,这必须在某个地方回答,但我还没有找到。
我有一个代码:
const int * tableCards[9];
int hand1card1 = 0;
tableCards[0] = & hand1card1;
int hand1card2 = 1;
tableCards[1] = & hand1card2;
int * flop1 = & tableCard[0];
tableCards[2] = flop1;
cout << * flop1 << endl;
cout << * tableCards[2] << endl;
flop1++;
cout << * flop1 << endl;
cout << * tableCards[2] << endl;
tableCard[48] is an array of pointers to ints
此代码有效,但我想更改tableCards[2] = flop1; 行以使* tableCards[2] 返回* flop1 指向的元素的实际值。在这段代码中,*flop1 返回我想要的值,但 *tableCards[2] 在增加 flop1 后保持不变。
我认为tableCards[2] = & (* flop1); 会将 *flop1 指向的值的地址分配给 int 指针 tableCards[2],但是在增加 flop1 之后,tableCards[2] 的值保持不变。我不想在指针上使用指针数组而不是指针数组,因为所需的 4/9 值只是整数,而不是整数上的指针。
编辑:请注意,tableCards[9] 与 tableCard[48] 是不同的数组。很抱歉,当我看到 cmets 和答案时,这个问题一定令人困惑。
【问题讨论】:
-
您在那里尝试做的事情非常令人困惑。你真的想要一个指向常量整数 (
const int* []) 的指针数组吗?该代码甚至可以编译吗?实际上,您将const int**分配给const int*。更正我自己,它可能会编译,但仍然不推荐。 -
sry,tableCard[48] 是一个指向整数的指针数组
-
它看起来很混乱,但它工作没有问题,我什至不知道,不推荐什么。我唯一的问题是将 *flop1 值的地址分配给另一个 int 指针,以在我增加 flop1 时更改另一个指针值,以便 flop1 指向另一个值。 :(
-
当您将一个指针分配给另一个指针时,您只是在复制源指针中包含的地址。接收变量只保存源变量包含的内容,因此,如果没有更多信息,就不可能获得源指针的地址。也许如果你使用了一个指针引用数组......虽然不知道这是否可能
-
我只想有一个指针,它会根据指向指针的目标更改其取消引用的值。而且我不能有一个指向指针的数组,因为该数组中的某些值将只是指向整数的指针。
标签: c++ arrays pointers dereference