※ 배열에 대한 기본 개념

https://chan4im.tistory.com/19

 

this.code(1).DS_ Array & Vector (STL) (★★★★★★)

※ Array (배열) ※ 1차원 배열 배열은 주로 여러 개의 동일한 자료형의 데이터를 한꺼번에 만들 때 사용된다. 예를 들어 a0, a1, a2, a3, a4, a5라는 6개의 정수형 변수를 A[6]으로 간단하게 선언할 수 있

chan4im.tistory.com

 

 

※ 1차원 배열

자료형  배열이름  [배열길이] 형태로 사용한다.

§ n개의 수를 입력받는 프로그램

int arr[n];
for (int i = 0; i < n; i++) {
    scanf("%d", &arr[i]);
}

 

Ex. 배열에 담기 (feat. 약수구하기)

#include <stdio.h>

int main(){
    int arr[100];
    int cnt = 0, N = 0;
    scanf("%d", &N);

    for (int i = 1; i <= N; i++) {
        if (N % i == 0){
            arr[++cnt] = i;    //cnt++;    //arr[cnt] = i;
        }
    }
    for (int i = 1; i <= cnt; i++) {
        printf("%d ", arr[i]);
    }
}

 

 

※ 배열을 이용한 문자열 변수 표현

 

 

 

 

 

※ 포인터

포인터는 주소를 "꺼내는" 연산이기에 포인터는 값과 그 값의 type을 알아야 한다!

* 연산자를 붙이면 주소를 따라가게 되며 &연산자는 주소를 꺼내는 연산자이다.

 

§ 직접접근과 간접접근을 이용한 값 변화

int a = 10;
int *ptr = &a;

a++;       // 직접접근
*ptr = 20; // 간접접근

 

ptr           // 포인터

*ptr         // 포인터가 가리키는 값

*ptr++     // 포인터가 가리키는 값을 가져온 후, 포인터를 한 칸 증가

(*ptr)++   // 포인터가 가리키는 값을 증가

 

 

 

 

 

 

※ 포인터 = 배열

명확히 말하자면 둘은 다르다. (https://chan4im.tistory.com/21 Case 3. 참조)

 

[Effective Modern C++ item 1]: template 형식 연역 규칙을 숙지하라!

※ 형식연역 (type deduction) 형식연역이 일어나는 방식을 확실히 이해하지 않는다면 Modern C++에서 효과적인 프로그래밍은 불가능하다. 1장에서는 이런 형식연역의 작동방식과 형식연역에 기초한 au

chan4im.tistory.com

배열과 포인터를 구분하지 않고 사용가능하지만, 배열형식은 포인터 형식과 다르다는 사실!

 

다만, 포인터는 연속된 메모리값을 사용하는데, 이때 배열이 포인터로 붕괴하기에 배열과 포인터가 같다 이해하고 사용하는 것이다.

 

 

 

 

 

 

 

※ 다차원 배열

 

 

 

 

+ Recent posts