C语言结构体指针

C语言结构体

C语言结构体可以作为指针进行参数传递,而且还可以在函数作为返回值。

#include <stdio.h>


struct point{
	int x;
	int y;
};

//struct rectangle{
//	struct point p1;
//	struct point p2;
//};
struct point* getStruct(struct point*);
void output(struct point);
void print(const struct point *p);



int main() {
	
/*************结构体指针*************************/
  struct point y = {0,0};
  getStruct(&y);
  output(y); 
  output(*getStruct(&y)); 
  print(getStruct(&y)); 
/****************嵌套******************/
//	int i;
//	struct rectangle rect[] = {           
//		{{1,2},{3,4}},
//		{{5,6},{7,8}}
//	};
//	
//	for(i=0;i<2;i++){
//		printRect(rect[i]);
//	}
/****************************************/	
	return 0;
	
}                                        	

struct point* getStruct(struct point *p){
	
	scanf("%d",&p->x);
	scanf("%d",&p->y);
	printf("p->=%d,p->=%d\n",p->x,p->y);
	
	return p;
}

void output(struct point p){
	printf("p.x=%d,p.y=%d\n",p.x,p.y);
}

void print(const struct point *p){
	printf("px=%d,py=%d\n",p->x,p->y);
}

//void printRect(struct rectangle r){
//	printf("<%d, %d> to <%d, %d>\n",r.p1.x,r.p1.y,r.p2.x,r.p2.y);
//}

其中未加注释部分显示了结构体如何作为指针进行参数传递,以及函数如何返回一个结构体指针。

注释的部分未结构体嵌套的应用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值