관리 메뉴

ComputerVision Jack

[C프로그래밍 Chapter10] 본문

Programming Language/C Programming

[C프로그래밍 Chapter10]

JackYoon 2020. 1. 31. 12:29
반응형

[포인터와 배열]

배열 이름

배열 이름은 포인터. 값을 바꿀 수 없는 상수 형태의 포인터이다.

따라서 배열의 이름은 배열의 시작 주소 값을 의미하며, 값 저장이 불가능한 상수다.

 

배열은 시작 주소만 알면 자료형을 통해 다음위치를 예측할 수 있기 때문이다.

배열 이름도 포인터이기 때문에 *연산이 가능하다.

 

포인터를 배열의 이름처럼 사용할 수 있다.

int *ptr = &arr[0];

#ptr[0] = arr[0]과 같은 의미이다.

[포인터 연산]

포인터는 *연산 이외에도 증가 감소 연산자도 사용할 수 있다.

int형 포인터 1증가 - > 주소값 4 증가

double형 포인터 1증가 - > 주소값 8증가

 

*(++ptr) : ptr에 저장된 값 자체를 변경

*(ptr+ 1) : ptr에 저장된 값은 변경되지 않음

 

arr[i] = *(arr + i) 와 같다

[상수형태 문자열 가리키는 포인터]

char str1[ ] = "first example";

#변수 형태의 문자열

str1은 문자열이 저장된 위칠를 가리키는 상태여야 한다.

 

char * str2 = "second example";

#상수 형태의 문자열

포인터 변수 str2는 다른 위치를 가리킬 수 있다.

[포인터로 이루어진 배열]

포인터 배열 : 포인터 변수로 이루어진 배열

int * arr[10] = {    };

 

문자열 저장하는 포인터 배열

char * strArr[i] = {    };

#출력시 그대로 출력하면된다. 문자열은 형태와 상관없이 메모리 공간에 저장된 후, 주소 값이 반환된다.

반응형

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

[C프로그래밍 Chapter12]  (0) 2020.02.01
[C프로그래밍 Chapter11]  (1) 2020.01.31
[C프로그래밍 Chapter9]  (0) 2020.01.30
[C프로그래밍 Chapter8]  (0) 2020.01.30
[C프로그래밍 Chapter7]  (0) 2020.01.29
Comments