플로렌스라는 개발자

상수 형태의 문자열을 가리키는 포인터

배열에서도 문자열을 다룰 수 있듯이, 포인터에서도 가능합니다. 포인터에서 동적 할당을 사용하여 읽기/쓰기 전용으로도 가능하지만, '읽기' 전용이 필요한 경우에 동적 할당을 쓰지 않고 "상수 형태의 문자열"을 사용해도 됩니다. 문자열 시점에서 배열과 포인터가 다른 점 char str[] = "my string"; char * str2 = "Your string"; 첫 번째 줄인 배열은 배열을 기반으로하는 '변수 형태의 문자열'입니다. 포인터를 기반으로 문자열을 선언하는 것도 가능합니다. 두 번째 줄인 포인터는 메모리공간을 수동으로 만들어주지 않았기 때문에 "Your string"이라는 문자열은 자동으로 할당되고 문자열의 첫문자 Y의 주소값이 반환이 되어 str2에 대입됩니다. Y의 메모리주소가 반환이 되어..

프로그래밍/C 2019.04.17 Plorence

C언어 포인터

C언어의 꽃, 포인터(Pointer) 포인터는 C언어의 꽃이라고 할 수 있으며 정말 많이 쓰입니다. 변수는 메모리 영역에 저장돼있고 메모리 주소는 이 변수가 메모리 영역 중 어디에 위치해있느냐를 나타냅니다. 이 메모리 주소를 가지고 포인터를 사용하여 읽기/쓰기가 가능합니다. 포인터 변수란 메모리의 주소 값을 저장하기 위한 변수입니다. 포인터의 개념 "포인터는 어렵다"는 써먹기 어려운 거지, 개념 자체는 매우 쉽습니다. 이점은 C언어의 다른 문법에도 어느 정도 해당하는 말입니다. 변수가 메모리에 할당될 때 어디에 위치해있냐를 알기 위해 특별한 연산자가 제공됩니다. 포인터는 이 위치 값을 참조하여 접근해서 읽기/쓰기를 하는 겁니다. 예로 하나 들어보자면 청와대라고 하면 정확히 위치가 어디인지 모르시는 분이 ..

프로그래밍/C 2019.04.17 Plorence