我正在尝试更好地理解&运算符(取地址符)在API中的使用。
这是我的示例API函数签名:
apiFunction(const int*)
我正在处理别人的代码,他们使用API如下:
int inputs[1] = {1};
apiFunction((const int*)&inputs);
我认为正确的用法应该是:
。
int inputs[1] = {1};
apiFunction(inputs);
当“inputs”是一个长度为1的char数组时,“inputs”和“&inputs”之间有什么区别吗?
当我使用printf时,它们看起来相同,但我担心我可能格式化不正确:
printf("%p, %p", inputs, (const int*)&inputs);
输出结果(例如):
0204DE94 0204DE94
&inputs
?那应该是您自动寻找的类型。调用方还要负责正确编码参数,因此在需要地址时调用&
不应该让人感到惊讶。 - tadman