*
-
일반적으로 어떤 변수를 출력할 때 그것은 해당 변수가 위치한 주소의 값을 출력하는 것이다. 위와 같이 a라는 것은 변수Ko가 가지고 있는 '값' 이며, a가 위치한 주소는 별도의 메모리 주소를 가지고 있는 것이다. 이러한 점에서 Ko == *&Ko 와 같은 뜻이라고 볼 수 있다. array 변수 자체는 array의 시작점 주소를 가지고 있다. 주소값을 출력해보면 Ko, &Ko[0], *&Ko 가 모두 같은 결과를 출력하는 것을 볼 수 있다. 변수 Ko 자체가 시작점 주소를 가지고 있으므로 &Ko[0]와 동일한 의미인 것이다. &와 *가 함께 있으면 서로 교차캔슬되어 *&Ko 와 Ko가 동일한 의미가 된다. 즉 *Ko == Ko[0] 이며 Ko[1]이 되기 위해서는 *(Ko + 1)로 표현 가능하다. st..
[ C언어 ] - 문자열 관련 함수를 직접 구현하기일반적으로 어떤 변수를 출력할 때 그것은 해당 변수가 위치한 주소의 값을 출력하는 것이다. 위와 같이 a라는 것은 변수Ko가 가지고 있는 '값' 이며, a가 위치한 주소는 별도의 메모리 주소를 가지고 있는 것이다. 이러한 점에서 Ko == *&Ko 와 같은 뜻이라고 볼 수 있다. array 변수 자체는 array의 시작점 주소를 가지고 있다. 주소값을 출력해보면 Ko, &Ko[0], *&Ko 가 모두 같은 결과를 출력하는 것을 볼 수 있다. 변수 Ko 자체가 시작점 주소를 가지고 있으므로 &Ko[0]와 동일한 의미인 것이다. &와 *가 함께 있으면 서로 교차캔슬되어 *&Ko 와 Ko가 동일한 의미가 된다. 즉 *Ko == Ko[0] 이며 Ko[1]이 되기 위해서는 *(Ko + 1)로 표현 가능하다. st..
2020.08.23 -
포인터는 C언어가 가지고 있는 매우 강력한 특징이다. 포인터는 어떤 것을 가리키는 변수라고 할 수 있다. 포인터는 *(asterisk)를 붙여 사용할 수 있다. *는 포인터를 선언할 때, 그리고 포인터가 가리키는 주소안의 값에 접근할 때 사용된다. int a = 10; int* p; 포인터의 선언은 위와 같이 사용한다. int형 변수 a를 가리키기 위해 int형 포인터 변수 p를 선언한 것이다. 하지만 포인터 변수p는 현재 어떤 것도 가리키지 않은 상태이다. integer의 크기는 4byte / float의 크기는 4byte / char의 크기는 1byte 이다. x64 프로세서에서 한 개의 처리 단위 메모리 주소의 크기는 8byte이고 변수a는 4byte이므로 위와 같이 차지하는 것을 볼 수 있다. 포..
[ C언어 ] - 포인터포인터는 C언어가 가지고 있는 매우 강력한 특징이다. 포인터는 어떤 것을 가리키는 변수라고 할 수 있다. 포인터는 *(asterisk)를 붙여 사용할 수 있다. *는 포인터를 선언할 때, 그리고 포인터가 가리키는 주소안의 값에 접근할 때 사용된다. int a = 10; int* p; 포인터의 선언은 위와 같이 사용한다. int형 변수 a를 가리키기 위해 int형 포인터 변수 p를 선언한 것이다. 하지만 포인터 변수p는 현재 어떤 것도 가리키지 않은 상태이다. integer의 크기는 4byte / float의 크기는 4byte / char의 크기는 1byte 이다. x64 프로세서에서 한 개의 처리 단위 메모리 주소의 크기는 8byte이고 변수a는 4byte이므로 위와 같이 차지하는 것을 볼 수 있다. 포..
2020.08.21 -
포인터는 기본적으로 C언의 강력한 무기이다. 포인터는 어떤것들을 가리키는, 즉 특정한 데이터가 저장된 메모리 주소를 저장하는 변수이다. 어떤 데이터의 주소 그 자체를 가리키기 때문에 이것을 응용해 다양한 연산이 가능하다. 프로그램의 어떠한 위치에서 시행되더라도 특정한 주소를 그대로 이용하기 때문에 즉시 값이 변경된다. temp는 포인터 x가 가리키는 위치에 값을 넣어준다. 즉 x라는 포인터가 가리키는 특정한 위치에 있는 값을 가져와서 temp에 넣어주는 것이다. 그다음 x가 가리키는 값을 y가 가리키는 값으로 바꿔주고 y가 가리키는 값에 temp를 넣어주면 완벽히 swap이 이루어진다. 메인함수에 swap함수를 가져와 매개변수로 x와 y의 주소를 입력해주면 x와 y의 값이 바뀐 것을 볼 수 있다. 만약 ..
C 프로그래밍 (13) - 포인터 pointer포인터는 기본적으로 C언의 강력한 무기이다. 포인터는 어떤것들을 가리키는, 즉 특정한 데이터가 저장된 메모리 주소를 저장하는 변수이다. 어떤 데이터의 주소 그 자체를 가리키기 때문에 이것을 응용해 다양한 연산이 가능하다. 프로그램의 어떠한 위치에서 시행되더라도 특정한 주소를 그대로 이용하기 때문에 즉시 값이 변경된다. temp는 포인터 x가 가리키는 위치에 값을 넣어준다. 즉 x라는 포인터가 가리키는 특정한 위치에 있는 값을 가져와서 temp에 넣어주는 것이다. 그다음 x가 가리키는 값을 y가 가리키는 값으로 바꿔주고 y가 가리키는 값에 temp를 넣어주면 완벽히 swap이 이루어진다. 메인함수에 swap함수를 가져와 매개변수로 x와 y의 주소를 입력해주면 x와 y의 값이 바뀐 것을 볼 수 있다. 만약 ..
2020.08.07