베오
DCode
베오
전체 방문자
오늘
어제
  • 분류 전체보기 (218)
    • 공지사항 (1)
    • 잡설 (1)
    • Programming (33)
      • [C] (1)
      • [Java] (4)
      • [Python] (2)
      • [Android] (2)
      • [Network] (0)
      • [Operation System] (2)
      • [Spring Boot] (22)
      • [Docker] (0)
    • Algorithm (31)
      • 자료구조 (2)
      • 알고리즘 (Java) (14)
      • 알고리즘 (기초) (15)
    • Coding Test (131)
      • BOJ (131)
      • Algospat (0)
    • 이론적인거 (14)
      • 보안 (5)
      • 오류 해결 (2)
      • 디자인 패턴 (5)
      • 네트워크 (1)
      • 기타 (1)
    • 최신기술 (4)
      • 블록체인 (1)
    • [Project] (1)

블로그 메뉴

  • 🐈‍⬛ GitHub
  • 📫 방명록
  • 🔖 태그

공지사항

인기 글

티스토리

hELLO · Designed By 정상우.
베오

DCode

1. 배열
Algorithm/자료구조

1. 배열

2021. 4. 4. 01:35

배열

정의


같은 자료를 나열하여 메모리에 연속으로 저장하여 만든 자료그룹

쉽게 말해서

정수형 변수를 여러개 생성해야 한다고 하자.

기본적으로는 int a1, a2, a3...

식으로 선언을 하겠지만,

배열을 이용해서 선언을 하면 간편하게 생성을 할 수 있다.

선언


자료형태 배열 명 [배열크기] 로 선언

// 크기가 int형(4byte)*10인 int형 배열 i_array 선언
int i_array[10]; 

 

초기화


선언과 동시에 초기값 설정 가능

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

아래와 같이 크기보다 작은 값을 선언 시,

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

A[3], A[4] 는 0값을 가진다.

아래 처럼 개별 초기화도 가능하다.

하지만 A[3]과 A[4]는 쓰레기 값을 가진다.

int A[5];
A[0] = 1;
A[1] = 2;
A[2] = 3; 

참고로 A 자체는 A[0]의 주소 즉 &A[0]를 나타낸다.

이는 이후 포인터에서 다시 언급할 것이다.


포인터

정의


변수의 메모리 주소를 가리키는 변수

*는 주소의 값을 참조하는 참조 연산자

&는 변수의 주소를 얻는 연산자

 

 

선언


자료형 *변수명;

int *ptr; // int 형 포인터 변수 ptr 선언

 

초기화

주소 연산자의 이용

int i;
int *ptr = &i;

정수형 변수 i의 주소를 값으로 가지는 ptr 포인터 변수 선언

 

int 형 포인터 변수    ptr 선언

 

선언을 한 뒤 ptr과 i를 그림으로 나타내면 위와 같다.

 

 

동적 메모리 할당

int *ptr = (int *)malloc(sizeof(int));

int 크기를 가지는 ptr 포인터 변수 선언

 

 

 

크기를 좀더 추가해 포인터를 배열처럼 쓸 수 있다.

int *ptr = (int *)malloc(sizeof(int)*5);

int 5개 만큼의 크기를 가지는 ptr 포인터 변수 선언

여기서 ptr 자체는 ptr[0]의 주소 즉 &ptr[0]를 가리킨다.

 

 

 

배열의 첫 번째 요소를 이용

int A[50];
int *ptr = &A[0];
// 또는
int *ptr2 = A;

 

또한 문자열의 시작 주소를 지정할 수 도 있는데

char *ptr = "Hello";

ptr에 문자열이 저장되는 것이 아닌

Hello 문자열(배열)의 첫번째 요소의 주소값을 가진다.

 

 

'Algorithm > 자료구조' 카테고리의 다른 글

3. 연결리스트  (0) 2021.06.29
    'Algorithm/자료구조' 카테고리의 다른 글
    • 3. 연결리스트
    베오
    베오

    티스토리툴바