c语言 返回结构体,C语言返回结构体

kodinid 4 0

大家好,今天小编关注到一个比较意思的话题,就是关于c语言 返回结构体的问题,于是小编就整理了4个相关介绍c语言 返回结构体的解答,让我们一起看看吧。

  1. C++ 在一个类里面定义一个结构体,怎么定义类的成员函数返回值为该结构体?
  2. golang怎么返回结构体?
  3. 函数的返回值可以是指向结构体的指针么?
  4. return数据类型?

C++ 在一个类里面定义一个结构体,怎么定义类的成员函数返回值为该结构体?

函数里定义的结构体是局部变量,在这个函数外是不能使用的。你要在函数外定义成全局变量。例,函数外:struct s{ int a;}s1,s2;这样的就定义了两个全局的结构体s1,s2,这两个结构体在所有函数中都可以使用,当然,使用它们的函数里,不能再定义相同名称的局部变量,否则使用的就是局部变量了。

golang怎么返回结构体?

可以直接返回结构体,也可以用指针参数(或者引用):

c语言 返回结构体,C语言返回结构体-第1张图片-安济编程网
图片来源网络,侵删)

structabc{

inta;

intb;

c语言 返回结构体,C语言返回结构体-第2张图片-安济编程网
(图片来源网络,侵删)

charc;

}

voidfun(structabc&st)//通过引用改变实参

c语言 返回结构体,C语言返回结构体-第3张图片-安济编程网
(图片来源网络,侵删)

{

st.a=5;

}

函数的返回值可以是指向结构体的指针么?

函数的返回值可以是指向结构体的指针例子:

//首先定义结构体struct lwip_socket { struct conn *conn; struct netbuf *lastdata; u16_t lastoffset; u16_t rcvevent; u16_t sendevent; u16_t flags; int err;}

;//定义一个此结构体变量,注意声明staticstatic struct lwip_socket sockets[NUM_SOCKETS]

;//然后就可以用使用了static struct lwip_socket *get_socket(int s){ struct lwip_socket *sock; if ((s < 0) || (s > NUM_SOCKETS)) { LWIP_DEBUGF(SOCKETS_DEBUG, ("get_socket(%d): invalid\n", s))

; set_errno(EBADF)

; return NULL; } sock = &sockets[s]

; if (!sock->conn) { LWIP_DEBUGF(SOCKETS_DEBUG, ("get_socket(%d): not active\n", s))

; set_errno(EBADF); return NULL; } return sock;}

return数据类型

Return 0返回值就相当于没有返回值,此处的0可以省略不写。Return返回值是函数的类型,***设函数是int类型,返回的就是int类型的数据,***设函数是struct node *类型,返回的就是struct node * 类型的值。Return可以返回多种值,例如地址。***设前面定义了一个struct node * 类型的指针变量phead,和一个struct node * 类型的函数。代码://phead=createlist()

; //其返回值就要是struct node * 类型。

到此,以上就是小编对于c语言 返回结构体的问题就介绍到这了,希望介绍关于c语言 返回结构体的4点解答对大家有用。

标签: 返回 结构 函数