次の連結リスト構造があるとします。
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
です。また、値渡しであるため、関数から変更することはできません。print
head
head
print()
しかし、私の疑問は、ptr
のコピーを受け取るのでhead
、リンクされたリストの値を出力できるということです。これは、print()
関数がリンクされたリストのコピー全体を受け取ることを意味しますか? リンクされたリストの全体のコピーを受信しない場合、リストを印刷するにはどうすればよいですか?