版主
主题
回帖0
积分10609
阅读权限200
注册时间2008-11-22
最后登录1970-1-1
在线时间 小时
|
下面是C/C++的例子。编译测试正常。
4 Y2 j9 a7 S: L$ _/ t; D7 T4 _/****************************************
7 N) t' k) b9 q L$ x; h结构体变量可以直接作为函数的参数,0 P+ a2 w; V- C1 Q0 l( d- d
也可以作为函数的返回值。
' h* K6 {( \* k: R3 a) O) c*****************************************/. g q( {7 d3 Z9 n6 d2 Y
//Filename: Struct.c
) I. i* b( Q8 v#include<stdio.h>
5 B" T( d, d8 @//定义一个结构体
0 M, |5 q9 h: X# ]' btypedef struct Point
# z0 T. ~7 e9 {$ f( [: q0 h; P5 `( Z{
S$ b, J9 N$ _; i' ^: q int x;
3 v1 Z8 L( d7 V& c' n6 y int y;2 X" R9 W0 @% j* B4 o
}Point;
& h9 N8 K; ?) l0 J- a$ t//使用一个结构体变量作为函数的参数
& s* `: ^+ d$ i9 c X2 }. hvoid Display(Point point)
; ?* s+ w5 _# I' W- o& R) o{# H9 f6 b, Z8 @4 h4 `
printf("x is %d\n",point.x);
2 m) {" o( A& _. [6 C printf("y is %d\n",point.y);! R9 g+ d G8 |4 ?, A6 } i
/*********若使用C++,则如下*************+ B8 f I- N2 z3 f2 G
std::cout<<"x is "<<point.x<<std::endl;
3 {9 P B% S" e; M# r: c2 M std::cout<<"y is "<<point.y<<std::endl;% B& q; W7 \) w
**************************************/
0 K) x6 q( l' l/ }$ I2 o}
! |! M' T! [ B- s- _ \% c//使用结构体变量作为函数的返回值
/ j. a+ d. i* |' m% wPoint SetPoint(int x,int y)
" Y9 _6 i3 s/ J1 h% @{
" j0 r& L' T) a. i Point point;
7 Y7 K3 z' l u point.x=x;% Q- S2 {! q% N4 {1 C
point.y=y;7 F' e* e. m, H& C# B+ s9 u
return point;/ J; P0 R5 U) @, ^7 J1 r5 Q
}- ~4 s3 m, T9 ? E. J8 I, p; V
//主函数
) g6 d! F4 _; G! {int main(int atgc,char * argv[])" f$ U8 @! j& ^0 p' s) b
{
% i" G9 y0 c; o Point point;
. @( g! J/ Y* {$ \- Y) f6 Z point=SetPoint(2,3);; t9 h( E% E! C: G t# t
Display(point);7 S' G7 R0 A- Z+ Q3 E e! T8 {9 f9 C
return 0;2 v" E3 t: v9 y/ k& m4 H7 H: d' K7 c
}6 A' r2 ^ m6 i! P I8 O" w8 f) R+ P
运行结果
( e1 K5 Z4 H. X; ~- j4 E7 d
5 j. z2 ?4 Z7 m2 y. V2 }x is 2
) ?( n5 A8 F/ ]7 k. ?+ x; H0 {y is 3 |
|