- 배열명은 첫 번째 요소의 주소
int ary[3];
ary == &ary[0];
- 포인터에 배열명을 저장하면 포인터를 배열명처럼 사용이 가능
int ary[3];
int *pa = ary;
pa[1] = 10; // 두 번째 배열 요소에 10 대입
- 배열명의 정수 덧셈은 가리키는 자료형의 크기를 곱해서 더함
int ary[3];
ary + 1; // ary + (1 * sizeof(*ary));
- 포인터의 뺄셈 결과는 배열 요소 간의 간격 차이를 의미
int ary[3];
int *pa = ary;
int *pb = pa + 3;
printf("%d", pb-pa); // ary의 주소를 100으로 가정하면, (112 - 100) / sizeof(int) => 12 / 4 => 3
- 배열을 출력하는 함수에 필요한 것은 배열명
- 배열에 입력하는 함수에 필요한 것도 배열명
- 배열의 크기가 달라도 입출력을 할 수 있게 하려면 배열 요소의 개수를 알아야 함
- 배열에 입출력하는 함수
| 배열을 출력하는 함수 | 배열에 입력하는 함수 | |
| 호출 | int ary[5] = { 10, 20, 30, 40, 50 }; print_ary(ary, 5); |
int ary[5]; input_array(ary, 5); |
| 정의 | void print_ary(int *pa, int size) { int i; for(int i = 0; i < size; i++) { printf("%d ", pa[i]); } } |
void input_array (int *pa, int size) { int i; for(int i = 0; i < size; i++) { scanf("%d ", pa + i); } } |
'AI 시스템 반도체 SW > C 언어' 카테고리의 다른 글
| [C 언어] 11 문자 (0) | 2026.06.02 |
|---|---|
| [C 언어] 9-2 포인터 완전 정복을 위한 포인터 이해하기 (0) | 2026.06.02 |
| [C 언어] 9-1 포인터의 기본 개념 (0) | 2026.06.02 |
| [C 언어] 8-2 문자를 저장하는 배열 (0) | 2026.06.01 |
| [C 언어] 8-1 배열의 선언과 사용 (0) | 2026.06.01 |