结构体全局变量的问题:

有一个全局变量结构体指针head(在main函数中分配了堆空间),结构体里面有一个成员是结构体指针next(作用是指向下一个结构体变量)。这个结构体指针是全局变量,放在堆... 有一个全局变量结构体指针head(在main函数中分配了堆空间),结构体里面有一个成员是结构体指针next(作用是指向下一个结构体变量)。
这个结构体指针是全局变量,放在堆中,那请问这个结构体指针next全局变量吗?还是局部变量?
展开
 我来答
风若远去何人留
推荐于2016-09-23 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450134
专业C/C++软件开发

向TA提问 私信TA
展开全部
这个指针是动态分配空间的一部分,不是全局变量也不是局部变量,它的作用域是从内存被分配开始,到head被free结束。
这一点不同于任何的变量。
而一个标识符被称为变量,它必须是被显示的定义的。
比如定义
struct{int a, b;}s;
这里的s是变量,具体是局部还是全局 看这句写在哪里,而s.a s.b只是变量s的成员,它本身不能被称作变量。
追问
你回答得太好了,我想继续问下,在分配堆空间的时候h = (struct xxxx *)malloc(size of (struct xxxx))这个语句不是分配了大小为struct xxxx的空间吗?
追答
是这样的
你说的没错。
有什么问题吗?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式