Я точно знаю, что
function(int *a); function(int a[]);
в C одинаковы, функция (int a []) будет переведена в функцию (int * a)
int *a = malloc(20);
int b[] = {1,2,3,4,5};
Эти два не совпадают, первый - указатель, второй - массив. Что происходит, когда я вызываю функцию (b)? (Function (int * a)) Я знаю, что b находится в стеке, так как передается эта функция?
Во-вторых, строки:
char *c1 = "string";
char c2 [] = "string";
В этом случае я не знаю, где c1, и я полагаю, что c2 находится в стеке. Предположим, что теперь функция: function (char * c), которая совпадает с функцией (char c []), что происходит, когда я вызываю функцию (c1) и функцию (c2), строки будут передано по ссылке или значению?