From 2e9eb147837fc0097d9e81f045002ac7deb85f68 Mon Sep 17 00:00:00 2001 From: Peace Date: Thu, 24 Apr 2025 15:38:31 +0900 Subject: [PATCH] function arguments by reference --- practice/lc_functionArgsByReference.c | 36 +++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/practice/lc_functionArgsByReference.c b/practice/lc_functionArgsByReference.c index 2e49360..9f70ddc 100644 --- a/practice/lc_functionArgsByReference.c +++ b/practice/lc_functionArgsByReference.c @@ -5,11 +5,47 @@ void addone(int n) n++; } +void addoneByRef(int* n) +{ + (*n)++; +} + +typedef struct +{ + int x; + int y; +} Point; + +void move1(Point* p) +{ + (*p).x++; + (*p).y++; +} + +// 약어 +void move2(Point* p) +{ + p->x++; + p->y++; +} + int main() { int n = 0; printf("Step0: %d\n", n); addone(n); printf("Step2: %d\n", n); + addoneByRef(&n); + printf("Step2: %d\n", n); + + printf("\n"); + + Point pt = { 1, 1 }; + printf("Step0 pt.x: %d, pt.y: %d\n", pt.x, pt.y); + move1(&pt); + printf("Step1 pt.x: %d, pt.y: %d\n", pt.x, pt.y); + move2(&pt); + printf("Step2 pt.x: %d, pt.y: %d\n", pt.x, pt.y); + return 0; } \ No newline at end of file