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;

 

 

참고

https://kldp.org/node/161607

'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