版主
主题
帖子
积分10609
阅读权限200
注册时间2008-11-22
最后登录1970-1-1
在线时间 小时
|
下面是C/C++的例子。编译测试正常。5 a) a3 D) F8 J) p. z
/****************************************
2 K* J. ~& w4 C) [9 U0 b& W) y结构体变量可以直接作为函数的参数,
$ t4 j6 ~- ?; U b也可以作为函数的返回值。
2 W1 @5 H0 S0 H& Z/ n. O. g: ~*****************************************/- u1 o9 a+ {( T/ Y% w
//Filename: Struct.c
2 F9 \* w0 b: n: B' ~7 C#include<stdio.h>$ I" ?8 K9 D# v- z/ T: }6 C
//定义一个结构体
# d' E& L2 Y1 U: e9 ptypedef struct Point
) D* t8 \, B2 e{
& _$ W0 G. w/ j d3 D9 ?% D3 _ int x; I/ K5 A- h; h! ~0 [7 @) a
int y;( R& f. J; V u& z- k8 ~- T7 Q, f) A9 W
}Point;
. O, M" r6 d7 D//使用一个结构体变量作为函数的参数' T, n* r, W! m
void Display(Point point)- ] S$ h/ F/ \( @3 W/ ]7 e* O; E
{; P( m! m# v; X7 d8 r* M7 r
printf("x is %d\n",point.x);
9 \6 I4 H7 K- a# [/ i2 B6 W# U. w7 ` printf("y is %d\n",point.y);
( [) a5 A5 h. z& r* q /*********若使用C++,则如下*************, D# ]3 V" V1 S* ]- }
std::cout<<"x is "<<point.x<<std::endl;
* _2 e2 }: K3 J std::cout<<"y is "<<point.y<<std::endl;
, P! l0 I f& i: A% X1 G **************************************/
2 ^( |% D* E) a. R% U}
1 p2 t- ~1 y1 o) q6 P' ^//使用结构体变量作为函数的返回值
1 d) w7 h% T& uPoint SetPoint(int x,int y)
: [3 D( r! S6 V{1 t# w% n" V% G) o0 M% q! O6 V
Point point;
6 u3 [. r( P4 Z/ A2 c6 Q point.x=x;
( }5 R* D. g: n point.y=y;5 F8 x7 @- t9 k% p- C
return point;& P' B! J" y6 t5 I5 k; @% `
}" {: y$ B! b) d7 r1 f: K
//主函数
' [+ @$ M* r( Iint main(int atgc,char * argv[])
+ v/ _! y/ e6 l{ V! ^3 @; S1 O+ ^+ s
Point point;
, y, D! P9 \' n* H6 ]3 N+ y+ ]: d point=SetPoint(2,3);
4 F5 P' o% g. Z5 d Display(point);" F3 F) W9 B2 }, ^. Q
return 0;7 |; A; V$ a! \& y
}& R, a: p( R, }; Q1 g% Y, h1 M. F
运行结果: I6 f4 R i) O/ r) S7 ~6 Y: E$ e4 A
0 a- U7 o* ]( z4 w. P$ Nx is 2/ o" V( t* Q* f, D# B: Q0 J
y is 3 |
|