结构体全局变量的问题:

有一个全局变量结构体指针head(在main函数中分配了堆空间),结构体里面有一个成员是结构体指针next(作用是指向下一个结构体变量)。
这个结构体指针是全局变量,放在堆中,那请问这个结构体指针next全局变量吗?还是局部变量?

这个指针是动态分配空间的一部分,不是全局变量也不是局部变量,它的作用域是从内存被分配开始,到head被free结束。
这一点不同于任何的变量。
而一个标识符被称为变量,它必须是被显示的定义的。
比如定义
struct{int a, b;}s;
这里的s是变量,具体是局部还是全局 看这句写在哪里,而s.a s.b只是变量s的成员,它本身不能被称作变量。追问

你回答得太好了,我想继续问下,在分配堆空间的时候h = (struct xxxx *)malloc(size of (struct xxxx))这个语句不是分配了大小为struct xxxx的空间吗?

追答

是这样的
你说的没错。
有什么问题吗?

温馨提示:答案为网友推荐,仅供参考
相似回答