Coding/C & C++
C/C++ 배열과 포인터
heyoon2j
2020. 1. 11. 01:33
■ C/C++ 배열과 포인터
ㆍ 배열
- 선언에 필요한 것: 배열 이름, 자료형, 길이정보
- 값을 바꿀 수 없는 "상수 형태의 포인터"
- 다차원 배열의 경우, 배열 포인터를 이용하여 표현 가능
- "변수 형태의 문자열", 문자열 변경이 가능
* 문자열을 저장하는 경우, 항상 마지막에 '\0'(널 문자)이 들어가야 된다. 널 문자가 없는 경우 문자 배열로 취급한다.
ex>
int arr0[5];
int arr1[3] = { 0, 1, 2 };
char arr2[3] = { 'H', 'i', '~' }; // 문자 배열
char arr3[4] = { 'H', 'i', '~', '\0' } // 문자열
int * parr = arr0;
ㆍ 포인터
- 메모리의 주소 값을 저장하기 위한 변수
- & 연산자: 변수의 주소 값을 반환
- * 연산자: 포인터가 가리키는 메모리 공간에 접근
- 포인터 변수의 크기는 32/64 비트 시스템에 따라 달라진다(4/8 바이트)
- 값을 변경 가능한 "변수 형태"
- "다중 포인터"를 이용하여 배열처럼 표현 가능 // *(a+1) = a[1]
- "상수 형태의 문자열", 문자열 변경이 불가능
ex>
int num=7;
int *pnum = NULL; // 0 == 널 포인터(NULL)
pnum = #
*pnum = 8;
참고