链表中指针创建有关问题

链表中这个指针的创建为什么要用动态内存分配的方法呢?不能直接定义一个指针吗?直接定义的指针和采用动态内存分配定义的指针有什么差别吗?在计算机底层上有什么不同吗?
img

Node 就是一个节点的内存空间的一个地址,每个节点的地址都是不一样的,所以是不可以使用直接定义的指针的,除非一次性定义你需要的节点个数,那样就失去了链表的优势和目的了。链表要的就是可长可短,便于扩展。

动态分配用的是堆的内存,函数的变量用的是栈里的内存,程序中全局分配是程序启动的时候就分配好的。他们都是内存,实际上没有区别。主要区别是,动态分配是根据需要来分配,比如我让用户输入一组数据,数据的个数也是用户来决定的,那么这种情况肯定是动态分配比较省内存,因为我并不知道用户会输入多少个数据,如果我一开始就静态分配了好多内存不就造成用户计算机性能下降了?那如果我静态分配的不够,用户输入比我分配的还多,那程序就出错了。当然也是可以动静结合的。至于如何选择,主要是看程序的功能。有些时候如果数据过多可能还要放到硬盘上呢。

链表是一组非连续空间,可长可短,不能用普通指针。