与使用;
return_type function_name(prim_data_type* param...)
param 是一个指针,它指向内存中的一个地址,并且*param
是该地址中的值。答案是关于你想用这个做什么param
。
char in[20];
说“ in ”是第一个元素的地址。所以在函数调用中:
write(in, 20);
您正在发送第一个元素的地址,因此在函数实现中,您可以通过 访问第一个元素*param
,使用*(param+1)
orparam[1]
等访问第二个元素。您感到困惑的地方在这里:
char in = 5;
write(in, 1);
因为in是地址 5 (00000005),所以在函数的实现中,您正在访问那个地方,无论那里有什么值。你必须小心使用这样的。
在 malloc 操作中:
char* in = malloc(20);
write(in, 20);
in
是一个指向地址(第一个元素的地址)的指针,它可以容纳 20 个 char 元素,可以占用空间。在函数中,您可以使用参数指针访问所有元素(*param
是第一个元素,*(param+7)
或者param[7]
是第 8 个元素)
总之,当您想在另一个函数中使用主要数据类型变量(int、float、char..)时,您必须使用;
write(&in);
通过这样做,在该write函数的实现中,您可以访问该变量,更改值,*param
而不会造成混淆。
注意:为了更好地理解,这里简化了一些解释。这里欢迎额外的警告。