版主
主题
回帖0
积分10609
阅读权限200
注册时间2008-11-22
最后登录1970-1-1
在线时间 小时
|
下面是C/C++的例子。编译测试正常。
7 e- h6 S" [, w6 i$ |/****************************************' H3 [9 |/ W5 S- m8 N! R% U0 r
结构体变量可以直接作为函数的参数,: B6 _' n3 `0 k' w6 ^! P3 l
也可以作为函数的返回值。' |& |' Q4 b: T* w4 q
*****************************************/
7 f' \ p4 Q. O2 e: n//Filename: Struct.c
; R* B1 K! }' F) U9 j4 }+ v#include<stdio.h>
' n6 S; ?) H+ `8 \" J//定义一个结构体
0 W6 a5 A& ?3 ?! J& ~' ~7 gtypedef struct Point
. t; i* S1 k' L{
6 [2 }& ^( P% C' {* q$ } x int x;
" n/ z( c1 K/ Z& S& ~$ L( S$ n# H int y;/ B7 h5 O3 ~% f6 V$ }
}Point;. u8 y, d" r; R% b- @
//使用一个结构体变量作为函数的参数
, u g# f8 |1 ?. \9 R) R1 @/ f5 Dvoid Display(Point point)# t3 x4 n2 [+ m% q
{9 J: x6 V3 y1 K( s6 K7 _
printf("x is %d\n",point.x);5 ] o2 x' k7 T7 H8 O& B
printf("y is %d\n",point.y);
! r6 p2 Y7 X3 l4 s$ n /*********若使用C++,则如下************** Y% s% Z7 @5 e: Q/ w0 Z/ [/ r
std::cout<<"x is "<<point.x<<std::endl;
! S. z5 Z) s1 A std::cout<<"y is "<<point.y<<std::endl;) E$ \( Q- e; V/ {
**************************************/7 K% M+ q9 o$ H+ y" H
}& K4 |) Q' U8 V8 L" [: A: `
//使用结构体变量作为函数的返回值( H2 G) g7 H' b- C2 Y7 ~* E! [2 i
Point SetPoint(int x,int y)2 N9 N( V2 a' C# F) p2 P8 [ A5 s
{
0 c+ a5 ^/ a2 `9 ?, s Point point;& h; s# k9 X) z3 Z
point.x=x;3 r1 b: I" F1 d0 g
point.y=y;
9 q# l' | d+ U return point;
/ \1 @) @1 Q2 X9 N}
6 I: s6 C, a8 Q1 O# X//主函数
) W7 n3 p( ]+ C9 ~" t! qint main(int atgc,char * argv[]). Y8 z; C- k3 s
{
; z! U& x6 P" n! e9 Z q% q0 j* y! d$ X Point point;. L% c, i9 C# @2 _
point=SetPoint(2,3);
! O; P5 ?9 X1 }' w8 ` Display(point);
$ c# D. T& D* Y; `/ O7 [" Y' r* D return 0;. M7 H- Q) {# G% O) r
}1 J- U3 S4 U [% K2 B, W
运行结果
' p) J8 [3 V F* |# R4 \1 u0 l5 o9 m0 M* P9 ?4 p z
x is 23 _! X+ V4 S% l2 _
y is 3 |
|