okhaohao116 发表于 2016-9-30 09:06:46

结构指针函数

struct shop *shops()和struct shop shops()有什么区别
struct shop shops(sturct shop *p)这是什么意思

musilintan 发表于 2016-9-30 09:30:11

首先:struct shop是一个结构体类型,和int、char概念相同。例如:
struct shop A;      //变量A
int            B;      //变量B
char         C       //变量C
而struct shop *D表示的是指针变量。*号定义的是指针变量。
所以:struct shop *shops()和struct shop shops()他们都是函数,而唯一不同的就是他们的返回值类型。
struct shop* 表示返回的是一个结构体类型的指针。
struct shop表示返回的是一个结构体类型的变量。
可以假设一下他们的函数定义:
struct shop* shops()
{
    struct shop *D = (struct shop*)malloc(sizeof(struct shop));
    return D;
}
struct shop shops()
{
    struct shop E;
    return E;
}
他俩的区别就是返回的数据类型不同,一个是指针,一个是变量。
而struct shop shops(struct shop *p)这是一个带参数的函数。
函数定义:返回值   函数名称(参数...)。
至于struct shop shops(struct shop *p)到底什么意思,就根据上面的自己推理啦。
编程最大的乐趣就是思考。

人造人 发表于 2016-10-1 14:21:40

文章有点长,看完后,你就理解C语言的复杂声明了
http://blog.csdn.net/wangweixaut061/article/details/6549768
页: [1]
查看完整版本: 结构指针函数