반응형

표기법 2

11-2) 배열 시작 주소

배열 변수의 이름은 배열의 시작 주소 포인터는 일반 변수의 주소만 가질 수 있는 것이 아니라 배열과 같이 그룹으로 묶인 메모리의 주소도 가질 수 있다. 포인터 변수에 배열의 시작 주소를 대입할 때는 일반 변수와 마찬가지로 &연산자를 사용하면 된다. 배열의 경우에는 첫 요소인 data[0]의 시작 주소가 배열 전체의 시작 주소와 같기 때문에 다음과 같이 &연산자를 사용한다. char data[4]; char *p = &data[0]; //배열의 첫 번째 항목의 주소가 배열 전체의 시작 주소와 같음 위 설명에서 사용한 &data[0]은 포인터 표기법을 사용하면 &*(data+0)과 같이 표기할 수 있다. 그리고 +0은 생략할 수 있기 때문에 & *data라고 적어도 된다. char *p = &data[0] ..

C언어 2021.03.14

11) 배열과 포인터 표기법

배열 표기법과 포인터 표기법의 관계 배열은 [ ]연산자를 사용하여 표현하고 포인터는 *연산자를 사용하여 나타낸다. 변수를 선언할 때 변수의 역할이나 특성이 결정되기 때문에 표현 방식의 선택은 매우 중요하다. 포인터는 포인터 변수가 가리키는 메모리의 시작 주소를 기준으로 삼고, 배열도 해당 배열이 사용하는 메모리 그룹의 시작 주소를 기준으로 삼는다. 따라서 두 문법은 표기만 다를 뿐 문법 구조는 비슷하다. 그래서 다음과 같이 두 문법의 표기법을 바꿔서 사용할 수도 있다. 배열 포인터 char data[5]; data[1] = 5; // *(data+1) = 5;는 data[1] = 5;와 같음 *(data+1) = 5; char data; char *p = &data; //data 변수의 주소를 p에 저장..

C언어 2021.03.05
반응형