■ 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;
참고
'Coding > C & C++' 카테고리의 다른 글
C/C++ 구조체(struct, class) (0) | 2020.02.18 |
---|---|
C/C++ 함수 오버로딩 vs 함수 오버라이딩 (0) | 2020.01.31 |
C/C++ 입출력 (0) | 2020.01.04 |
C/C++ 변수와 상수, 데이터 표현 (0) | 2020.01.03 |
C/C++ 개발 환경 구축 (0) | 2020.01.02 |