'C' 태그의 글 목록
본문 바로가기

C4

[C언어] 이중포인터, 더블포인터 설명 포인터는 주소를 저장하는 '변수'이다. 주소를 저장한다는 특수한 목적이 있는 것일 뿐, 포인터는 당연히 변수이다. 그래서 포인터의 주소값을 가리키는 포인터인 더블 포인터가 존재할 수 있는 것이다. 선언하는 방법은 포인터를 선언할 때처럼 더블 포인터를 선언하고, 포인터가 변수의 주소를 담는 것처럼, 더블 포인터는 포인터의 주소를 담으면 된다. 더블 포인터의 값은 포인터인 변수의 주소값이 나오고, 더블 포인터의 값의 값은 포인터의 값인 변수의 값이 나온다. 더블 포인터의 값이 포인터이기 때문이다. 이해를 위해 아래의 예제를 보자. #include /* 이중 포인터 예제1 */ void function(int** dptr) { printf("호출완료, 넘겨받은 더블 포인터가 가르키는 값: %d\n", **dp.. 2020. 10. 5.
[C언어] 포인터 쉽게 이해하기 포인터를 쉽게 이해하려면 다음의 5가지를 이해하면 된다. 반대로, 포인터가 어렵게 느껴지는 이유는 이 5가지를 이해하지 못해서이다. 1. 포인터의 정의 2. 포인터를 사용하는 이유 3. 포인터를 선언하는 방법 4. 포인터에 대입해줘야 하는 것의 정체 5. 포인터가 가키리고 있는 값을 읽어오는 방법 차례대로 한번 이해해보자. 포인터의 정의 먼저, 포인터는 다른 변수의 주소를 저장하는 변수이다. 포인터 사용 방법 아래의 과정을 통해 포인터의 선언, 값 읽어오기 등 기본적인 사용 방법을 알아보자. 아래 코드는 num 변수를 선언하여 123으로 초기화하고 출력하는 기본적인 코드다. #include int main(void) { int num = 123; printf("%d\n", num); return 0; }.. 2020. 10. 5.
[C언어] 배열 길이 구하기 이번엔 C언어에서 배열의 길이를 구하는 예제를 살펴보자. 먼저 main 함수 안에 x라는 배열을 선언하여 값을 넣는다. 여기서는 데이터 타입을 int 형으로 했기 때문에 자료 하나 당 4byte를 차지함을 알 수 있다. 여기서 sizeof() 함수를 이용하는데 여기에 배열의 이름을 넣게 되면 배열이 차지하는 공간의 크기를 알 수 있다. 배열에 4개의 원소가 담겨져있다면 총 16byte를 차지할 것이다. 우리가 원하는 '4' 라는 정수를 얻어내기 위해서는 4라는 숫자로 나눠야 할 것이지만 배열이 int형이 아닐 수도 있다. 따라서 배열의 첫번째 원소의 크기를 sizeof() 함수로 구하여 이를 나눠주면 된다. 이를 매크로 함수로 구현하였는데 매크로 함수는 전처리기에서 동작하는 것이기 때문에 괄호를 붙이지 .. 2020. 10. 5.
[C언어] 프로그램 처리 시간, 걸린 시간 구하기 이번엔 C언어에서 시간을 측정하는 예제이다. clock()함수를 이용하는데, 이 함수는 현재 시점의 클록을 기록할 수 있는 함수이다. 시간을 측정하는 기본 원리는 처음 clock() 함수를 호출하여 클록값을 저장하고 두번째 clock() 함수를 호출하여 클록값을 저장한 뒤 그 차이만큼의 시간을 구하는 것이다. 클록의 반환 data type은 int 형으로 하면 된다. 그래서 두 시점을 start_time과 end_time으로 정의하여 계산하는데 여기서 CLOCK_PER_SEC로 나눠주면 원하는 시간이 나오게 된다. #include #include int main(void) { int start_time, end_time; float time; int i; start_time = clock(); for (.. 2020. 10. 5.