c语言能否通过结构体指针访问另一个函数中已经赋了值的相同的结构体指针中的成员值

比如说在同一个.c文件中,a函数中给students *p中的各成员(例如id,age)赋了值,在b函数中能否通过声明相同的结构体指针students *p再通过p->id去访问。

如果定义的结构体变量是个全局变量,可以在a函数中用students *p指向这个全局变量,可以通过指针p->id对结构体各成员引用(例如id,age)赋值,在b函数中通过声明相同的结构体指针students *p指向这个全局变量,再通过p->id去访问。
如果定义的结构体变量是个局部变量,可以通过各个函数的结构体指针形参的传递方式访问结构体成员。

参考GPT和自己的思路:

是可以的。C语言中,结构体指针可以在不同的函数中传递,只要它们指向的是同一份内存空间,就可以通过指针访问同一个结构体的成员。在你的例子中,如果a函数中已经给students *p中的成员赋了值,那么在b函数中通过相同的结构体指针students *p就可以访问到这些成员的值。只需要确保在b函数中正确地传递了指针的值即可。

可以,但是要访问同一个结构体,指针必须要指向该结构体

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7501873
  • 你也可以参考下这篇文章:听说你还不知道A,B,C...P站是什么?要跟紧年轻人的步伐了
  • 除此之外, 这篇博客: c语言_单链表中的 11.我要说一下我编译时发现的自己知识的不足(p指针指向) 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    p=L->next和p=L是两个事情,第一个p指的是第一个结点,第二个p指的是头节点。
    之前我总是把p=L->next当做p指向头指针的指针域,导致我在后面的操作中出现蝴蝶效应,从而百思不得其解,其实这种说法也对只不过在链表建成之前也就是还是结点的时候可以这么想,在已经建成的链表中就应该想的是指向下一个结点。

    最后运行结果如下 在这里插入图片描述


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^