版主
主题
回帖0
积分10609
阅读权限200
注册时间2008-11-22
最后登录1970-1-1
在线时间 小时
|
下面是C/C++的例子。编译测试正常。& f7 Z; j% @/ w- B1 G
/****************************************
0 [. C# ~; A5 u$ U# K结构体变量可以直接作为函数的参数,2 |- E Y7 v$ W7 x& |+ V y' @
也可以作为函数的返回值。
1 P4 ^) j! D% x5 ]6 [% R9 w*****************************************/
9 z/ ^" y; O1 W' Y4 X//Filename: Struct.c
( z' Q( ?5 a z; N1 ]#include<stdio.h>+ {5 `3 m. V. x0 {9 k
//定义一个结构体
3 r; G( l; c; `0 f: q& z! V X& @typedef struct Point
, A; d" `- Y4 B" r{; e& A; ]6 {- K
int x;. p/ P* k q: T, K& l, g
int y;: N: ~6 k% S2 r$ \% E: H" K, u0 q. f
}Point;
1 w4 O4 j" y0 `//使用一个结构体变量作为函数的参数
* \; D2 [2 g m _6 fvoid Display(Point point)6 ?9 g8 v) ~, h4 s" ]' A" z/ c
{/ z9 g% i9 E2 a
printf("x is %d\n",point.x);2 i, E9 k' ]( G$ }
printf("y is %d\n",point.y); _# b: I5 g* [6 C! e, c
/*********若使用C++,则如下*************! d6 S; b8 B J
std::cout<<"x is "<<point.x<<std::endl;
/ C2 W) V8 q0 a1 j0 s7 m std::cout<<"y is "<<point.y<<std::endl;
3 c3 g; S% c" S3 M **************************************/: m. J' u+ x' i% ^. e6 t8 h
}6 ^0 M; ^. M0 A
//使用结构体变量作为函数的返回值( \$ a- r5 Z1 k2 r+ J" w& } A
Point SetPoint(int x,int y)6 g3 b$ g3 ~- G
{; b/ y2 D/ g1 j1 F+ |6 Z3 t
Point point;2 g% @. X. n! h5 b
point.x=x;
" l O5 A$ c6 w0 G( c point.y=y;
( D' |- C7 c+ q return point;
4 g' G! m3 E% L& ]3 {4 u}: S; F! p8 L$ }/ P$ n
//主函数
' P7 s, `: k8 N' T9 d, `, A0 J8 dint main(int atgc,char * argv[])7 ]+ h! H$ l: |' G) u
{/ ^$ V* O9 W5 c7 b
Point point;5 {: w6 ?5 G" |4 a/ V/ s
point=SetPoint(2,3);
0 I; k+ J; z2 M) L2 V8 H Display(point);7 J, b* H# U8 P! K
return 0;
& D3 L! c% Q. U% a9 R}2 Z! K) o- G; h* f
运行结果/ }2 |! A- M0 u) H6 q
: I/ {+ e7 I; w( w. Z6 j. _) jx is 25 a( g% V5 i5 W: R! C$ X' N; m O
y is 3 |
|