티스토리 뷰

반응형

 

youtu.be/OGg8LcXpscc

모든 강의 자료 : www.codingnow.co.kr/

배열과 포인터에 대해 살펴 보겠습니다.

 

자세한 설명은 첨부된 동영상을 참고해주세요.

 

배열

배열은 데타를 그룹으로 묶는 형태가 됩니다.

배열의 기본 형태는 다음과 같습니다.

변수타입 변수명[배열크기] = {값1,값2, , ,};

 

유사한 변수를 여러게 만들어 사용하기 보단 배열 형태로 구성하면 변수 및 데이타 관리가 수월해 지게 됩니다.

예를 들어 학생의 과목별 점수를 변수로 저장한다면 다음과 같이 선언하여 사용할 수 있습니다.

int a = 90; //국어
int b = 80; //영어
int c = 70; //수학
int d = 90; //역사

 

만약 배열을 사용한다면 다음과 같이 매우 효율적으로 관리가 가능하게 됩니다.

int score[4] = {90,80,70,90}

배열로 선언하게 되면 for와 같은 반복문으로 접근이 매우 최적화됩니다.

 

int score[4] = {90,80,70,90}

for(int i=0; i<4; i++)
{
    printf("score = %d\n",score[i]);
}

이와 같이 배열의 장점은 데이타 관리에 있다고 할 수 있습니다.

 

포인터

포인터는 메모리의 주소를 가리키는 것이라고 할 수 있습니다.

모든 변수는 메모리에 할당이 되고 메모리의 주소를 가지고 있습니다.

즉 변수 명이아닌 주소를 통해 데이타에 접근이 가능하는 말이 됩니다.

이것을 가능하게 하는 것이 포인터 입니다.

 

포인터의 기본 형태는 다음과 같습니다.

변수타입 *변수명;

*을 통해 포인터 임을 명시하게 됩니다.

여기에서는 *과 &을 사용하게 되는데 * 는 포인터가 가리키는 주소에 있는 값이되고

&는 주소를 의미하게 됩니다.

 

다음과 같은 코드로 보면 포인터 p는 a의 주소를 가리키게 되고

*과 &를 통해 값과 주소를 가져 올 수 있습니다.

char a = 99;
char *p = &a;

printf("p %d\n",*p); //p가 가리키는 a의 값 99가 출력
printf("p %d\n",&p); //p가 가리키는 a의 주소값 출력

 

반응형