当我在C中的函数中传入一个数组作为参数时,它是否创建了数组的副本,还是实际上对原始数组进行了更改?我这里有一个小程序,它将一个数字转换成二进制形式。例如,如果数字为15,则二进制形式为1111.
web.xml
递归部分让我失望。我不知道为什么。我怀疑这是因为它每次运行递归时都会创建数组的副本。但我不知道如何解决这个问题。如果有人可以提供帮助,那就太好了,谢谢
答案 0 :(得分:2)
传递给函数的数组总是修改原始数组。函数声明:
void func( int* array);
void func( int array[]);
是等效的,因为当您使用数组参数调用这些函数时,数组将衰减为两者的指针。因为您正在传递指针,所以您实际上是通过引用传递数组,并且原始数组已被修改。