Правильный синтаксис - =IF(AA2<=4;X2;0). Обратите внимание на точки с запятой, а не на запятые.
, если вы пишете
int b = 0;
foo(b);
int foo(int a)
{
a = 1;
}
, вы не меняете 'b', потому что a является копией b
, если вы хотите изменить b, вам нужно будет передать адрес из b
int b = 0;
foo(&b);
int foo(int *a)
{
*a = 1;
}
то же самое относится к указателям:
int* b = 0;
foo(b);
int foo(int* a)
{
a = malloc(10); // here you are just changing
// what the copy of b is pointing to,
// not what b is pointing to
}
, поэтому для изменения, где b указывает, чтобы передать адрес:
int* b = 0;
foo(&b);
int foo(int** a)
{
*a = 1; // here you changing what b is pointing to
}
hth [ ! d5]
Вы не можете изменить указатель, если вы не передадите его ссылкой (не const) или как двойной указатель. Передача по значению делает копию объекта, и любые изменения в объекте производятся копией, а не объектом. Вы можете изменить объект, на который указывает указатель, но не сам указатель, если вы передадите его по значению.
Прочитайте этот вопрос, чтобы лучше понять различия в деталях. Когда пройти по ссылке и когда передать указатель в C ++?
Вы передаете указатель по значению.
Передайте ссылку на указатель, если вы хотите его обновить.
bool clickOnBubble(sf::Vector2i& mousePos, std::vector<Bubble *> bubbles, Bubble *& t)