【发布时间】:2015-05-11 17:16:25
【问题描述】:
为什么下面程序的输出会是0x0?
BYTE n_buffer[4] = { 1, 2, 3, 4};
int GetElement(BYTE *pElement, DWORD dwIndex)
{
pElement = &n_buffer[dwIndex];
return SUCCESS;
}
int main()
{
BYTE *res2 = NULL;
GetElement(res2, 3);
printf("0x%X\n", res2);
}
【问题讨论】:
-
什么是
BYTE?char?char *? -
基本上是无符号字符。
-
func(x)永远不会改变x。 C 使用按值传递,这意味着函数接收参数的副本。 (想象一下,如果这不是真的,func(5)会发生什么……)
标签: c function pointers pass-by-value