版主
主题
回帖0
积分10609
阅读权限200
注册时间2008-11-22
最后登录1970-1-1
在线时间 小时
|
下面是C/C++的例子。编译测试正常。4 {' i2 ?1 \) W4 f1 h6 o
/****************************************1 \+ ?5 F# H, J( h, V- S
结构体变量可以直接作为函数的参数,
7 S" e" h" b4 a# m* ?0 |- k也可以作为函数的返回值。$ H. Z1 _& _- J; W$ T$ H, z
*****************************************// j, L6 j+ `7 s. ~2 O9 @6 ?
//Filename: Struct.c e) l/ V" O6 F9 Y |4 |- H
#include<stdio.h>
, [5 N3 l2 \$ s1 A+ {//定义一个结构体
# w- E8 O k I1 dtypedef struct Point
9 z, b% w, R# U, q" ]/ |& }{
/ N( D( D' b1 K5 m$ y4 C# _% `) R int x;
# K0 J1 j2 Q+ P' i* Y int y;
- N3 q, V% R! N4 v9 h S! a}Point;
3 p; S7 c" R* b2 H, Q$ {1 N//使用一个结构体变量作为函数的参数
$ M2 q& ~% k' M7 yvoid Display(Point point)) Y& h& t- M& |
{2 H* z% j9 ]4 n8 b5 B! G
printf("x is %d\n",point.x);
4 S7 @, P) p9 J+ J: N3 k* z1 F printf("y is %d\n",point.y);' i% |' g+ C" N+ x! T7 Z8 B0 K: ^% \
/*********若使用C++,则如下*************9 e$ @5 ?% H! W4 ?1 Q
std::cout<<"x is "<<point.x<<std::endl;
% t( S2 b( w: \( t9 X i; U9 f* ` std::cout<<"y is "<<point.y<<std::endl;7 l/ t8 i0 n9 U) r* y
**************************************/- h/ g+ M( S' ^- R( J y
}- B" {+ |( g- c5 c) \5 `
//使用结构体变量作为函数的返回值" V! g: d' S! @9 h0 G: l4 x; L1 Y
Point SetPoint(int x,int y)' c. z" g% i- G. L! V5 s) r. k
{
, ~$ [* s# A _ Point point;: _% }" K% k' Q+ J% }0 R1 q
point.x=x;
s$ ]5 E' e2 u/ F; ` point.y=y;+ L: Q2 {* L3 {- N9 Y
return point;! x2 Z& e! N6 G7 x; T0 x- f1 ^
}' ^ l w8 e6 a% p6 W0 B
//主函数* t" r4 s, r. z9 G
int main(int atgc,char * argv[])6 G$ a2 R' b1 R
{: c& e: | C4 ]$ ?; U
Point point; l. Z! E' L1 C0 _" Y5 z' q1 e
point=SetPoint(2,3);7 B& {; [/ Z$ h! Z4 M* }
Display(point);
4 {( u' m) f, v7 C$ e- h return 0;: Q, o' q/ ^$ h, I- M
}4 N% j, z; w+ y7 ]6 v1 x) [
运行结果( O& ~8 ]4 i' {8 E! E7 ^
! X6 k" f [) I/ ~1 Qx is 2% P4 e* X" F$ n0 {& c- \
y is 3 |
|