次の連結リスト構造があるとします。
struct linked_list
{
struct linked_list *next;
int data;
};
typedef struct linked_list node;
そして、リンクされたリストを印刷する次の関数:
void print(node *ptr)
{
while(ptr!=NULL)
{
printf("%d ->",ptr->data);
ptr=ptr->next;
}
}
main()これを書くときの関数で:
print(head); // Assume head is the pointer pointing to the head of the list
これは基本的に値渡しです。は のコピーを受け取るためptrです。また、値渡しであるため、関数から変更することはできません。printheadheadprint()
しかし、私の疑問は、ptrのコピーを受け取るのでhead、リンクされたリストの値を出力できるということです。これは、print()関数がリンクされたリストのコピー全体を受け取ることを意味しますか? リンクされたリストの全体のコピーを受信しない場合、リストを印刷するにはどうすればよいですか?