C study Day 3 Array Written by Changyoung
C study Day 3 ~ Array Written by Chang-young Koh.
Why arrays? - 100명의 학점을 입력받아 평균을 출력 할때 int score[100], i ; for(i = 0 ; i < 100; i++) scanf(“%d”, &score[i]);
How to use arrays? - Access - 배열에 접근하는 방법 int score[100] , i; for(i = 0 ; i < 100 ; i++) scanf(“%d”, &score[i]); int sum = 0; for(i = 0 ; i < 100 ; i++) sum + = score[i]; 역시 배열이랑 똑같다!
How to use arrays? - Access (advanced) - 배열에 접근하는 방법 (심화) int score[100], i; for(i = 0; i < 100; i++) scanf(“%d”, score + i); int sum = 0; for(i = 0; i < 100; i++) sum += *(score+i); 결과는 앞에서와 완벽히 같다.
Pointer - Declaration int *a; /*별을 붙이면 포인터!*/ int b; a = &b; scanf(“%d”, a); printf(“b = %d”, b, *a);
Pointer - Why Pointer? void swap 1(int a, int b){ int c = a; a = b; b = c; return; }
Pointer - Why Pointer? void swap 2(int *a, int *b){ int c = *a; *a = *b; *b = c; return; }
Pointer - Why Pointer? int x = 1000, y = 3; swap 1(x, y); printf(“x = %d, y = %d₩n”, x, y); output : x = 1000, y = 3 바뀌지 않았다!
Pointer - Why Pointer? int x = 1000, y = 3; swap 2(&x, &y); printf(“x = %d, y = %d₩n”, x, y); output : x = 3, y = 1000 !!!
How to use arrays? - Access (advanced) - 배열에 접근하는 방법 (심화) int score[100], i; for(i = 0; i < 100; i++) scanf(“%d”, score + i); int sum = 0; for(i = 0; i < 100; i++) sum += *(score+i); 결과는 앞에서와 완벽히 같다.
How to use arrays? - Access (advanced) - 배열에 접근하는 방법 (심화) int score[100]; 이 경우, score 은 &score[0] 와 같고, score + 1 은 &score[1] 와 같다. 어렵게 설명하면, score + 1 = &score[0] + sizeof(int)*1
How to use arrays? - Access (advanced) - 배열에 접근하는 방법 (심화) int score[100]; 그러니까, (score + i) 는 &score[i]와 같고, 당연히 *(score + i) 는 *(&score[i]), 즉 score[i]와 같다!
Thank you!
- Slides: 33