[C | C++]배열과 포인터의 관계

2024. 11. 13. 14:19·Language/C | C++

배열이란 무엇인가?

배열은 동일한 데이터 타입의 요소들을 연속적으로 저장하는 자료구조이다. 예를 들어, 정수형 배열은 여러 개의 정수 값을 저장할 수 있다. 배열은 고정된 크기를 가지며, 각 요소는 인덱스를 통해 접근할 수 있다.

int numbers[5] = {1, 2, 3, 4, 5};

위의 코드에서 numbers는 정수형 배열이다. 이 배열은 5개의 정수 값을 저장하고 있다.

배열의 이름과 주소

배열의 이름은 배열의 첫 번째 요소의 주소를 가리킨다. 즉, 배열의 이름을 사용하면 배열의 첫 번째 요소에 대한 메모리 주소를 얻을 수 있다. 이를 통해 배열의 요소에 접근할 수 있다. 예를 들어, C 언어에서 배열의 이름을 사용하여 첫 번째 요소의 주소를 출력해 보겠다.

#include <stdio.h>

int main() {
    int numbers[5] = {1, 2, 3, 4, 5};
    printf("배열의 이름: %p\n", numbers); //배열의 이름은 첫 번째 요소의 주소를 가리킨다.
    printf("첫 번째 요소의 주소: %p\n", &numbers[0]);
    return 0;
}

위의 코드에서 numbers는 배열의 첫 번째 요소인 numbers[0]의 주소를 출력한다. 두 출력 결과는 동일한 값을 보여준다.

배열과 포인터의 관계

배열의 이름이 첫 번째 주소를 가리킨다는 사실은 포인터와 밀접한 관계가 있다. 배열의 이름은 포인터처럼 동작하며, 배열의 요소에 대한 포인터 연산을 수행할 수 있다. 예를 들어, 다음과 같이 배열의 요소와 주소에 접근할 수 있다.

#include <stdio.h>
int main() {
    int numbers[5] = {1, 2, 3, 4, 5};
    printf("두 번째 요소의 주소: %p\n", (numbers + 1)); //포인터 연산을 통해 두 번째 주소에 접근
	printf("두 번째 요소: %d\n", *(numbers + 1)); //포인터 연산을 통해 두 번째 요소에 접근
    return 0;
}

위의 코드에서 (numbers + 1)은 두 번째 요소의 주소를 출력하며, *(numbers + 1)은 두 번째 요소의 값을 출력한다. 이는 배열의 요소에 대한 접근이 포인터 연산을 통해 가능하다는 것을 보여준다.

결론

배열은 프로그래밍에서 기본적이고 중요한 자료구조이다. 배열의 이름이 첫 번째 요소의 주소를 가리키고, 포인터와 밀접한 관계가 있다는 점을 이해하는 것은 배열을 효과적으로 사용하는 데 큰 도움이 된다. 

'Language > C | C++' 카테고리의 다른 글

[C | C++]생성자 오버로딩과 디폴트 인자  (0) 2024.11.15
[C | C++]포인터  (0) 2024.11.13
'Language/C | C++' 카테고리의 다른 글
  • [C | C++]생성자 오버로딩과 디폴트 인자
  • [C | C++]포인터
yxxjxxeee
yxxjxxeee
  • yxxjxxeee
    공부 일지
    yxxjxxeee
  • 전체
    오늘
    어제
    • study N
      • Framework
        • Spring
      • Language
        • JavaScript
        • C | C++
        • JAVA
        • PHP
      • CS
        • 네트워크
        • 자료구조
        • 데이터베이스
        • 운영체제
      • DBMS
        • MySQL
      • 코딩테스트 N
        • 백준 N
        • 프로그래머스
        • LeetCode
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 쇼핑몰 제작 프로젝트(PHP)
    • github
  • 공지사항

  • 인기 글

  • 최근 글

  • hELLO Designed By 정상우
    Version v4.10.2
yxxjxxeee
[C | C++]배열과 포인터의 관계
상단으로

티스토리툴바