私は確かにそれを知っています
function(int *a); function(int a[]);
Cの場合も同じですが、function(int a [])はfunction(int * a)に変換されます
int *a = malloc(20);
int b[] = {1,2,3,4,5};
これら2つは同じではなく、1つ目はポインター、2つ目は配列です。function(b)を呼び出すとどうなりますか?(function(int * a))bがスタック上にあることがわかっているので、その関数にどのように渡されますか?
第二に、文字列:
char *c1 = "string";
char c2 [] = "string";
この場合、c1がどこにあるかわかりません。また、c2がスタック上にあると思います。関数が次のようになっているとします。function(char * c)、これはfunction(char c [])と同じで、function(c1)およびfunction(c2)を呼び出すとどうなりますか?文字列は参照によって渡されます。価値?