[C] 배열 - 2 (배열과 포인터, 문자열) 배열과 포인터 배열과 포인터는 컴퓨터 내부적으로 거의 같은 방법으로 메모리에 접근한다. 그러나 이 둘 사이의 차이를 잘 구분해야 한다. 배열의 이름은 그 배열에 할당된 메모리의 시작주소를 나타내는 상수이다. 컴파일러는 컴파일 과정에서 상수값을 가진 포인터로 처리한다. 그러므로 프로그램이 실행되는 동안 배열이 가리키는 주소는 바뀔 수 없다. 배열명은 첫 번째 배열요소를 가리키는 포인터를 기호화한 것이다. 포인터에 정수값을 더할 때는 포인터가 가리키는 자료형의 크기를 곱해서 더해준다. 예를들면, &ary[2] 과 &ary[0] + 2은 동일한 주소값 44를 나타낸다. &ary[0] + 2는 컴파일러에 의해 &ary[0] + (2 * sizeof(int))의 값(여기서는 8로)으로 계산된다. 위 그림을 통해 .. 개발자과정준비/C 4년 전
[C] 배열 - 1 (배열의 선언과 초기화, 문자열) 배열 배열이라는 문법적 요소는 여러 개의 변수를 동시에 생성할 수 있는 특징을 지니고 있다. 배열이란 사용자가 의미상의 연관이 있는 동일한 자료형에 속한 여러 개의 자료들을 묶어 하나의 이름으로 정의한 자료형이다. 즉, 같은 이름과 같은 타입을 가진 연속적인 메모리 공간이라고 할 수 있다. 배열의 선언과 사용 배열은 일반적인 변수와 달리 값을 여러 개 저장할 수 있다. 1차원 배열을 선언하는 방법은 다음과 같다. 자료형은 배열의 모든 원소가 가지는 공통적인 자료형으로 어떤 자료형도 올 수 있다. 배열이름은 사용자가 정의하는 배열의 이름이다. 배열길이는 배열이 가지는 요소의 개수를 나타내며 항상 양의 정수로 명시되고 대괄호 '[]'로 둘러싸인다. 배열길이를 선언할 때는 반드시 상수를 사용해야 한다. int.. 개발자과정준비/C 4년 전