我肯定知道
function(int *a); function(int a[]);
在 C 中是一样的,function(int a[]) 将被翻译成 function(int *a)
int *a = malloc(20);
int b[] = {1,2,3,4,5};
这两个不一样,第一个是指针,第二个是数组。当我调用 function(b) 时会发生什么?(function(int *a)) 我知道 b 在堆栈上,那么如何传递给该函数?
其次,字符串:
char *c1 = "string";
char c2 [] = "string";
在这种情况下,我不知道 c1 在哪里,并且我认为 c2 在堆栈上。假设现在的函数是:function(char *c),和function(char c[])一样,当我调用function(c1)和function(c2)时会发生什么,字符串将通过引用传递或价值?