版主
主题
回帖0
积分10609
阅读权限200
注册时间2008-11-22
最后登录1970-1-1
在线时间 小时
|
下面是C/C++的例子。编译测试正常。
) R: Q# {& J$ d; [9 w% l, a! c/****************************************) |3 J' }" C) W n" p, A
结构体变量可以直接作为函数的参数,( L/ h0 Z- c7 t: M
也可以作为函数的返回值。
1 k% t0 j L8 `: Y$ A: K*****************************************/
: m' E2 o# M6 p0 W& X; a//Filename: Struct.c
4 K w2 R* W! V9 C5 l1 L#include<stdio.h>1 S; C. P3 w& m% t/ T/ g- |
//定义一个结构体7 ~7 k4 k' f% `& y0 W, y9 b1 @
typedef struct Point
- i! u0 [7 b# E' t: i8 _' n{
$ s, Z5 Y8 {9 I4 G# @& P1 E! `9 s int x;; {6 ?+ \0 z K
int y; y: `: r' P' `# i" o$ e
}Point;
. {4 r4 j# q- `. O8 U* G* R//使用一个结构体变量作为函数的参数: }) z% u9 J+ \/ h1 ]
void Display(Point point)% g5 z6 x8 j, s( f, p9 O3 |- M
{
1 I5 G+ o; S/ W* u, {: G: i printf("x is %d\n",point.x);
4 W, Q. ?; w4 h1 Z }% A printf("y is %d\n",point.y);
: w# g* p$ j; X; Z- R e6 t /*********若使用C++,则如下*************. X0 |; S2 ]8 v2 Y, I1 s; b
std::cout<<"x is "<<point.x<<std::endl; Y1 a* r; Q2 m7 Q( W) ]
std::cout<<"y is "<<point.y<<std::endl;. B" k6 X! ~, v/ @
**************************************/4 u: o9 ?8 t* _. Z; V2 e. T
}
! K/ v: P) Q5 q+ r4 |//使用结构体变量作为函数的返回值
: N: z3 b+ m8 _2 s' B0 o# XPoint SetPoint(int x,int y)1 k6 G$ s% F, k# z3 [4 s
{
6 h3 p. a5 S: F$ }- Q ` Point point;
' B! f% c# v. ~! r point.x=x;
/ `: j! ^. m/ f. _5 D4 c point.y=y;% G+ ~* {9 y! d ]3 Z
return point;
r+ r) h! @& a- R4 `9 R4 g}& r3 G' H9 ~/ b; w- X6 G
//主函数
6 e& [: @4 Y# Bint main(int atgc,char * argv[])
/ e1 y" s* T" a/ b" e{% O; p& E& y9 Q8 q# u% G3 Z9 ~* [" v
Point point;( }- a' l4 ?0 H7 A+ D) k1 `
point=SetPoint(2,3);
' [' C2 b2 G) Y i9 ] Display(point);4 n6 T- B5 T+ ~: l; s
return 0;/ v: w2 D1 X; l- q
}/ ?( ? F3 x# h) |; H
运行结果; ~1 G5 m% ?! h, b
# R, R# |7 a) s3 |4 |1 T! \+ X6 p
x is 2
" {# V3 @7 B7 l9 S7 S- F! }# |9 xy is 3 |
|