
1. 포인터의 개념
- 포인터란 다른 변수의 주소를 저장하는 변수입니다.
- 우리가 집에 살고 있다고 생각해보세요. 집 주소를 알고 있으면 그 집에 가서 누구를 만날 수 있겠죠? 포인터는 이렇게 변수의 주소를 알고 있어서, 그 변수에 접근할 수 있게 해줍니다.
2. 포인터의 선언과 사용
- 포인터를 선언할 때는 변수 타입 앞에 *를 붙입니다.
int *ptr; // 정수를 가리키는 포인터 ptr 선언
int a = 10;
ptr = &a; // ptr에 a의 주소를 저장
3. 배열과 포인터의 관계
- 배열의 이름은 배열의 첫 번째 요소의 주소입니다. 즉, 배열 이름을 포인터처럼 사용할 수 있습니다.
- 예를 들어, arr[0]의 주소는 &arr[0]와 같습니다.
예제: 포인터와 배열 사용하기
다음은 포인터와 배열을 사용하는 간단한 예제입니다.
#include <stdio.h>
int main() {
int numbers[5] = {10, 20, 30, 40, 50}; // 정수 배열 선언
int *ptr; // 포인터 선언
ptr = numbers; // 배열의 첫 번째 요소 주소를 ptr에 저장
printf("배열의 요소를 포인터를 사용해 출력합니다:\n");
for (int i = 0; i < 5; i++) {
printf("numbers[%d] = %d\n", i, *(ptr + i)); // 포인터를 사용하여 값 출력
}
return 0;
}
예제 설명
- 배열 선언: numbers라는 배열을 선언하고 5개의 정수를 저장합니다.
- 포인터 사용: ptr이라는 포인터를 선언하고, 이 포인터에 배열의 첫 번째 요소의 주소를 저장합니다.
- 출력: for문을 사용하여 포인터를 통해 배열의 각 요소를 출력합니다. *(ptr + i)는 포인터를 사용하여 배열의 각 요소에 접근합니다.
포인터와 문자열
포인터를 사용하여 문자열을 출력하는 방법을 보여줍니다.
#include <stdio.h>
int main() {
char str[] = "안녕하세요"; // 문자열 배열 선언
char *ptr = str; // 문자열의 첫 번째 문자 주소를 포인터에 저장
printf("문자열을 포인터로 출력합니다:\n");
while (*ptr != '\0') { // 문자열의 끝을 만날 때까지 반복
printf("%c ", *ptr); // 포인터가 가리키는 문자 출력
ptr++; // 포인터를 다음 문자로 이동
}
printf("\n");
return 0;
}
- str이라는 문자열 배열을 선언합니다.
- ptr 포인터에 문자열의 첫 번째 문자의 주소를 저장합니다.
- while 루프를 사용하여 포인터가 가리키는 문자를 하나씩 출력합니다. 문자열의 끝은 '\0'로 표시됩니다.
'C_language' 카테고리의 다른 글
| C언어 구조체 : 다양한 정보를 한꺼번에 관리하는 방법 (1) | 2024.08.27 |
|---|---|
| c언어 포인터 왜? 쓸까? (0) | 2024.08.27 |
| c언어 함수를 활용한 사용한 간단한 예제 (0) | 2024.08.27 |
| c 언어 함수의 지역변수 & 전역변수 (0) | 2024.08.27 |
| c 언어 배열에 대해 알려줄께? (0) | 2024.08.27 |