배열의 이름이 바로 포인터이다. 즉, 배열은 따로 주소가 없이 배열 이름자체가 주소이다.
#include<stdio.h>
int main(){
int a[] = {10, 20, 30, 40, 50};
printf("배열의 이름 = %u\n", a); // 배열의 이름 = 1868132144
printf("첫 번째 원소의 주소 = %u\n", &a[0]); // 첫 번째 원소의 주소 = 1868132144
}
따라서, 포인터도 배열처럼 사용할 수 있다.
#include<stdio.h>
int main(){
int a[] = {10, 20, 30, 40, 50};
int *p;
p=a;
printf("a의 첫 번째 원소 = %u\n", a[0]); // 10
printf("p의 첫 번째 원소 = %u\n", p[0]); // 10
}
중간 점검
1. 배열 a[]에서 *a의 의미는? a[0]
1-2. 배열 a[]에서 *(a + 1)의 의미는? a[1]
1-3. 배열 a[]에서 *a + 1의 의미는? a[0] + 1 = 11
2. 배열의 이름에 다른 변수의 주소를 대입할 수 있는가? X
3. 포인터를 이용하여 배열의 원소들을 참조할 수 있는가? O
4. 포인터를 배열의 이름처럼 사용할 수 있는가? O
'2학년 2학기 > c언어' 카테고리의 다른 글
9-6장 함수 포인터 (0) | 2024.10.29 |
---|---|
9-5장 함수가 포인터를 반환하는 경우 (0) | 2024.10.29 |
9-3장 포인터와 함수 (0) | 2024.10.28 |
9-2장 포인터의 연산 (0) | 2024.10.28 |
9-1장 포인터란? (0) | 2024.10.28 |