C语言数据结构之链表-0:结构体变量与结构体指针

结构体变量和结构体指针的区别:

1.定义:

结构体变量:定义一个结构体变量需要用到struct关键字,后面跟结构体的名称,EG:struct student{};

结构体指针:定义一个结构体指针需要用的struct关键字和指针变量的名称,EG:struct student *p;

2.内存分配方式:

结构体变量:在定义结构体变量的同时系统会自动为其分配内存空间,在栈上分配内存;

结构体指针:需要手动动态的分配内存空间,在堆上分配。

3.访问成员方式:

结构体变量使用"."来访问成员,而结构体指针使用"->"来访问成员。

4. 传递方式:

结构体变量作为参数传递时,会进行一次复制,

而结构体指针作为参数传递时,只会传递一个指针,不会进行复制。

5. 空指针问题:

使用结构体指针时需要注意空指针问题,而结构体变量不存在空指针问题。

总的来说,结构体指针更加灵活,可以动态地分配内存,而结构体变量更加简单,适用于结构体较小的情况。

你可能感兴趣的:(数据结构,c语言,链表)