如果我有struct example *e
,function(&e)
和function(e)
之間有什麼區別?結構示例* e:函數(&e)和函數(e)之間的區別
一個例子。
這是第一個代碼:
#include <stdio.h>
struct example
{
int x;
int y;
};
void function (struct example **);
int main()
{
struct example *e;
function (&e);
return 0;
}
void function (struct example **e)
{
/* ... */
}
這是第二個代碼:
#include <stdio.h>
struct example
{
int x;
int y;
};
void function (struct example *);
int main()
{
struct example *e;
function (e);
return 0;
}
void function (struct example *e)
{
/* ... */
}
是什麼這兩個代碼之間的區別? 謝謝!
但在第二種情況下,我可以在函數中執行'e = malloc(2 * sizeof(struct example))'嗎? –
@user你可以,但是你只能在函數中本地修改'e'。函數參數'e'按值傳遞。 –
好吧,在第一個如果我做'* e = malloc(2 * sizeof(struct example))'我也在'main()'中更改它,對吧? –