版主
主题
帖子
积分10609
阅读权限200
注册时间2008-11-22
最后登录1970-1-1
在线时间 小时
|
下面是C/C++的例子。编译测试正常。8 h* r7 k( m& T) |
/****************************************
& z5 j5 P0 Z" Y9 H4 C0 Y结构体变量可以直接作为函数的参数,
4 m. U* `+ M3 z8 V' p4 b# X也可以作为函数的返回值。
3 H, D. g v( ^0 ~* ^*****************************************/
1 S5 j. G) y$ s* _1 a/ e//Filename: Struct.c# ]- d& @0 X: D4 g- a
#include<stdio.h>
/ j4 |, N: W% B$ \//定义一个结构体' D, Y* j4 `, d+ E
typedef struct Point' [ ?% V, N% L' |0 B* r4 v1 N
{
) l6 X) g3 R% o5 _! ]* y! d int x;$ l( @& \" B9 Q+ S% d1 \% |. ~% @
int y;
: u3 L, t" H7 T: x' T; I}Point;
. W( e8 H: o3 S7 o//使用一个结构体变量作为函数的参数: p# J! o* ~% R6 U" Z4 g0 q
void Display(Point point)
9 {* X: a. R- g1 h{
- Q, y8 A8 e3 e/ n. O; l printf("x is %d\n",point.x);
% _5 Y( Q2 d1 u5 u6 o printf("y is %d\n",point.y);% x$ c1 y% h' U- n5 ~9 B9 x# B
/*********若使用C++,则如下*************
# a& o5 G) ]( f& w* z8 R std::cout<<"x is "<<point.x<<std::endl;3 b+ o1 B5 _- Y1 g1 }; t8 g
std::cout<<"y is "<<point.y<<std::endl;2 ^. Y; ?) ]4 r' U P$ i4 p
**************************************/: D+ K: L5 ]$ `/ Y
}
& }* h- Z9 T+ t, M. L1 W+ H+ Y//使用结构体变量作为函数的返回值
, N6 V+ r6 U2 ?+ u1 [8 iPoint SetPoint(int x,int y): [2 r: d$ ]+ a: E* u2 x
{# V: b$ J( H' @( q8 F1 _0 g; ~! _& c
Point point;3 D. j4 D- }. d7 N* _9 x
point.x=x;) X( I7 K8 F0 ^8 M
point.y=y;
! [. P5 K* ^5 j return point;
/ ?" E% P) z+ Q' y6 o% D}$ X) J4 h1 U7 I! k, y
//主函数
1 W& m# d; I5 M* e. E7 Gint main(int atgc,char * argv[])
0 S+ v0 m8 W/ K4 U3 S: N( R- I{
/ V' m! I8 i P2 _7 S r Point point;
2 F' B0 H7 R( L- {. w( a: @; a point=SetPoint(2,3);1 C( _7 s+ T. W" _
Display(point);
" ^2 P# Q6 G8 b* H. {+ O& I% L return 0;3 ?- Z: d- R. r$ [( ]7 P
}
! x, e* X) U! J9 m运行结果
4 ]3 y% z1 `& e) M: ]5 H: k) R1 `. f& o9 s
x is 2
* {; ~0 I2 |! ~% }* S* K$ my is 3 |
|