可以通过修改被我注释掉的部分自行测试功能
#include<stdio.h> #include<stdlib.h> //函数声明 struct pot* getstruct(struct pot*); void output(struct pot); void print(const struct pot*p); //定义结构体 typedef struct pot { int x; int y; }pot; int main() { //初始化 pot one={0,0}; //getstruct(&one); //输入one的值x,y //output(one); //output(*getstruct(&one));//输出输入值的函数 //print(getstruct(&one)); //同上 getstruct(&one)->x=0; //在函数里得到赋值并输出,出函数后x归零 output(one); //再次输出修改过后的one /*getstruct(&one) = (struct pot){12,23};这样写是不行的 output(one); system("pause"); return 0; } //函数定义 struct pot* getstruct(struct pot*p) { printf("getstruct input:"); scanf("%d,%d",&p->x,&p->y); printf("%d,%d\n",p->x,p->y); return p; } void output(struct pot p) { printf("%d,%d\n",p.x,p.y); } void print(const struct pot*p) { printf("%d,%d\n",p->x,p->y); }