반응형
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #include <stdio.h> typedef struct { int x; int y; }point; int main() { int i; point pt[3] = {{10,20},{20,30},{30,40}}; point *ptr = pt; for(i = 0 ; i < 3 ; i ++) { printf("ptr[%d].x : %d\nptr[%d].y : %d\n\n",i,ptr[i].x,i,ptr[i].y); } } | Crocus |
이것을 포인터를 이용하여 값을 변경하고자 할때는
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #include <stdio.h> typedef struct { int x; int y; }point; int main() { int i; point pt[3] = {{10,20},{20,30},{30,40}}; point *ptr = pt; ptr->x = 1; ptr->y = 2; (ptr+1)->x = 3; (ptr+2)->y = 4; for(i = 0 ; i < 3 ; i ++) { printf("ptr[%d].x : %d\nptr[%d].y : %d\n\n",i,ptr[i].x,i,ptr[i].y); } } | Crocus |
위의
ptr->x = 1;
ptr->y = 2;
(ptr+1)->x = 3;
(ptr+2)->y = 4;
와 같이 포인터 ptr이 가리키는 값을 바꾸어 가며 값을 조정 할 수도 있고
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | #include <stdio.h> typedef struct { int x; int y; }point; int main() { int i; point pt[3] = {{10,20},{20,30},{30,40}}; point *ptr = pt; printf("%d,%d ",ptr->x,ptr->y); ptr++; ptr->x = 1; ptr->y = 2; printf("%d,%d\n\n",ptr->x,ptr->y); for(i = 0 ; i < 3 ; i ++) { printf("%d,%d ",ptr[i].x,ptr[i].y); } } | Crocus |
다음과 같이 ptr을 변경 후 값을 조절 할 수도 있다.
반응형
'Basic > C' 카테고리의 다른 글
구조체 call by value / pointer 차이 예문 (0) | 2015.11.21 |
---|---|
static 변수 (0) | 2015.11.21 |
구조체 포인터 (0) | 2015.11.21 |
스택, 구조적, 객체지향 프로그래밍에 관한 간단한 내용 (0) | 2015.11.16 |
배열, 포인터 몇가지 정리내용 (0) | 2015.11.16 |