【发布时间】:2023-01-17 04:47:53
【问题描述】:
尝试在 C 中使用 C++ 样式时:
void square(int &x){
x = x * x;
};
这会出错。 错误:在“&”标记之前需要“;”、“、”或“)”
我对 C++ 最满意,但我正在学习 C,有没有办法在 void 函数中获得地址
尝试从 void -> int、double、char 切换。它只有在我去掉 & 符号时才有效,但我想在那里有一个地址。有没有办法做到这一点? 我应该只使用 * 而不是 &,像这样:
void square(int *x){
x = (*x) * (*x);
};
【问题讨论】:
-
提示:
int*和int是两个非常不同的东西,这就是原因。 -
c++没有指针吗?
-
“我想在那里有一个地址” 第一个问题:为什么?如果你想要一个地址,你将不得不处理后果。
-
@Hackaholic C++ 有没有这个问题的参考。
-
void square(int &x)将x声明为参考,而这完全是 C++ 所没有而 C 所没有的东西。是的,在 C 中实现它的方法是使用指针int *x和显式取消引用x = *x * *x(注意你不需要括号)。
标签: c function memory-address