结构体指针赋值 结构体指针
生活知识
2023-12-16 21:22:05
导读 大家好,我是小典,我来为大家解答以上问题。结构体指针赋值,结构体指针,很多人还不知道,现在让我们一起来看看吧!假设有以下代码:List...
大家好,我是小典,我来为大家解答以上问题。结构体指针赋值,结构体指针,很多人还不知道,现在让我们一起来看看吧!
假设有以下代码:
ListNodePtr s;
*ListNodePtr p=&s;
**ListNodePtr pp=&p;
假设ListNodePtr s在内存中存放的地址为1000,p指向s,pp指向p,示意如下:
1000:s的内容
1005:p的内容=1000
1009:pp的内容=1005
即s的地址是1000,代表结构体的内存位置;p的地址是1005,p的值为1000指向s;pp的地址是1009,p的值为1005指向p(即指针的指针)。
故:
1. ListNodePtr s:s就是结构体的代表,并不是结构体指针,p才是结构体指针;
2. *ListNodePtr s:这里s才是结构体指针;
3. 传参时,用function_2(&s)或function_2(*s)可直接在函数中访问原结构体内容;用function_1(s)则会将结构体复制一份压到参数栈中,函数中访问的是复制的副本。看实际需要使用。
本文到此讲解完毕了,希望对大家有帮助。
免责声明:本文由用户上传,如有侵权请联系删除!