C语言结构体指针别名与函数指针参数

main 函数:

clipboard.png

linkList.h

clipboard.png

但是为什么插入函数和求表长度里面直接传入 A 就没问题呢?

clipboard.png

clipboard.png

求解,,谢谢^^

阅读 4.1k
2 个回答

因为那个是 一个变量, 在 C 语言中, 默认变量传递是按照 值传递, 所以 就和 普通变量传递一样, 在函数中改变形式参数的值, 并没有改变实际参数的值. 也就是, 实参还是指向未定义的地址.

所以,要通过传递变量的地址, 来改变实参的值.

typedef struct Node ListNode,*LinkList;

这句表明 ListNode代表Node

LinkList 是一个指向Node的指针,即Node *

在main中,A是LinkList类型,LinkList是Node *,则A为Node *

InsertList和ListLength的参数都是LinkList类型,Node *,传递A类型与之匹配,后续操作合法

initList函数请确认传递A的地址调用的是LinkList *参数的函数

传递A调用的是LinkList参数的函数
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进