본문 바로가기
728x90
반응형

C언어16

[C언어 공부하기] 16. 포인터 함수 - 우당탕탕 개발자 되기 프로젝트 포인터 함수란 포인터 변수를 매개변수로 갖는 함수를 말합니다. 포인터 함수의 매개변수가 포인터 변수이기 때문에 해당 인수를 대입할 때도 포인터 변수 형식으로 대입하고자 하는 값의 주소값을 입력해줘야 합니다. 포인터 함수에서 사용되는 매개변수와 인수 또한 일반 함수와 동일하게 그 데이터 타입이 일치해야 하고 개수와 순서도 일치해야 합니다. 배열을 포인터로 활용할 수 있기 때문에 포인터 함수의 매개변수에 배열을 사용할 수 있습니다. 포인터 함수의 매개변수의 값을 배열로 받아 배열의 값을 바꾼다면 주소를 활용해 값을 변경하는 것이므로 함수 안에서 변경한 배열의 값이 그대로 변경되어 저장됩니다. 이렇게 전달된 포인터 함수의 매개변수는 일반 함수에서 전달된 매개변수와 다릅니다. 이는 각 함수를 호출할 때, 인수가.. 2023. 7. 1.
[C언어 공부하기] 15. 배열과 포인터 - 우당탕탕 개발자 되기 프로젝트 포인터와 유사한 것이 바로 배열입니다. 배열은 배열 그 자체로 출력하는 방법도 있지만 포인터를 사용하여 출력하는 방법도 있습니다. 두 출력 방식의 결과는 동일합니다. 배열을 포인터를 사용하여 출력하는 방법은 역참조 연산자를 활용하여 배열 연산의 실제 값을 출력하는 방식으로 나타내었습니다. 배열 이름을 그냥 사용하면 배열의 시작 주소를 의미한다는 점을 활용하였습니다. 배열과 포인터를 사용하다 혼돈이 올 수 있으므로 자유롭게 사용하려면 개념과 구조를 완벽하게 이해하고 있어야 합니다. 그래야 헷갈림 없이 자유자재로 사용할 수 있을 것입니다. 배열은 포인터 상수이기 때문에 포인터 연산에는 증가 +와 감소 -만 존재합니다. 포인터 ( +/-) 정수 연산은 포인터가 가리키는 주소에 마치 배열이 있는 것처럼 메모리에.. 2023. 7. 1.
[C언어 공부하기] 14. 포인터 - 우당탕탕 개발자 되기 프로젝트 포인터란 메모리의 주소를 가지고 있는 변수를 말합니다. 포인터를 사용하여 메모리에 접근할 수 있고 주소를 사용하여 값을 지정할 수도, 값을 읽을 수도 있습니다. 포인터를 선언하는 방법은 데이터 타입* 변수명 형태로 선언하거나 데이터 타입 *변수명 형태로 선언할 수 있습니다. 포인터 선언 시 사용하는 *를 포인터 수식어(곱셈 아님)라고 합니다. 포인터는 메모리의 주소를 가지고 있는 변수이기 때문에 사용하기 전에 꼭 초기화를 해줘야 합니다. 포인터 변수를 초기화하는 방법은 포인터를 선언해 주고 주소를 저장할 변수의 주소를 주소 참조 연산자 &를 사용해 지정해 주면 됩니다. 지정할 변수가 당장 없다면 NULL을 적어주어 주는 방법도 있습니다. NULL은 주소 0을 의미합니다. 선언된 포인터에 원하는 변수의 주.. 2023. 7. 1.
[C언어 공부하기] 13. 메모리와 주소 - 우당탕탕 개발자 되기 프로젝트 포인터를 배우기 전에 메모리와 주소에 대해 알아보겠습니다. 대부분의 변수는 모두 메모리에 저장됩니다. 메모리에 저장된 변수는 해당 주소를 활용할 수 있습니다. 변수의 주소를 가져오는 연산자는 주소 참조 연산자 &입니다. 주소 참조 연산자 &를 사용하여 출력한 결과를 보면 %p 형식 지정자를 사용할 경우 변수의 주소가 16진수로 출력되고, %d 형식 지정자를 사용할 경우 10진수로 출력되는 것을 볼 수 있습니다. 배열의 주소는 배열의 첫 번째 원소의 주소를 의미합니다. 배열은 각 원소가 각각의 변수로 볼 수 있으므로 각 원소는 개별적인 주소를 지닙니다. 각 원소의 주소는 배열의 시작 주소에서 배열의 데이터 타입 크기만큼 증가한 위치입니다. 바이트(byte) 단위로 나뉘는 메모리는 연속된 바이트의 모임으로,.. 2023. 6. 30.
[C언어 공부하기] 12. 배열 - 우당탕탕 개발자 되기 프로젝트 배열은 여러 개의 변수를 한 번에 저장할 수 있는 자료형입니다. 배열의 각 공간에는 번호가 붙여져 여러 개의 변수를 사용하는 것과 유사하지만 변수보다 더욱 유용합니다. 배열을 선언하는 방법은 변수를 선언하는 방법과 비슷합니다. 데이터 타입 배열명[배열의 크기] 의 구조로 배열을 선언할 수 있습니다. 이렇게 선언된 배열을 초기화하지 않으면 배열의 각 원소에는 쓰레기 값이 들어가게 되므로 초기화를 해줘야 합니다. 배열을 초기화해 주는 방법은 { } 안에 배열 원소로 저장할 값을 콤마(,)로 구분하여 나열해 주면 됩니다. 여기서 배열의 원소로 들어갈 수 있는 값은 처음 배열을 선언할 때 지정해 준 배열의 데이터 타입과 일치해야 합니다. 배열을 초기화해 줄 때 지정해 준 배열의 크기보다 원소의 개수가 적으면 초.. 2023. 6. 30.
[C언어 공부하기] 11. 함수의 형태 - 우당탕탕 개발자 되기 프로젝트 함수의 매개변수와 리턴 값의 유무에 따라 함수는 4가지의 형태로 나뉘게 됩니다. 매개변수와 리턴 값이 모두 없는 함수는 함수의 데이터 타입과 매개변수에 모두 void로 작성해 준 함수입니다. 함수를 호출할 때는 그냥 함수의 이름만 적어 호출할 수 있습니다. 매개변수는 있지만 리턴 값이 없는 함수는 함수의 데이터 타입에는 void를 작성해 주면 되지만 매개변수에는 데이터 타입과 매개변수의 이름을 모두 작성해줘야 합니다. 또한 함수를 호출할 때 인수의 개수가 호출하는 함수의 매개변수의 개수와 일치해야 합니다. 매개변수와 리턴 값이 모두 있는 함수는 함수의 데이터 타입도 지정해줘야 하고 매개변수도 작성해줘야 합니다. 리턴 값이 있는 함수이므로 함수 안에서 return 문으로 리턴 값을 지정해줘야 하고 또한 이.. 2023. 6. 30.
[C언어 공부하기] 10. 매개변수와 인수 - 우당탕탕 개발자 되기 프로젝트 함수를 정의할 때 사용되는 변수를 매개변수라고 합니다. 매개변수는 함수를 호출하여 사용할 때 호출되는 함수에 입력되는 값을 의미합니다. 그리고 main 함수에서 함수를 호출할 때 함수에 같이 전달되는 변수를 인수라고 하고 인수의 값이 호출되는 일반 함수의 매개변수로 입력됩니다. 처음 함수를 정의할 때 매개변수는 데이터 타입과 매개변수의 이름을 둘 다 적어주어야 합니다. 만약 함수의 입력 값이 없어 매개변수가 없다면 (void)를 적어줍니다. void는 생략 가능합니다. 함수의 매개변수와 인수는 여러 개 사용할 수 있지만 그 개수가 동일해야 합니다. 2023. 6. 29.
[C언어 공부하기] 9. 함수의 기본 - 우당탕탕 개발자 되기 프로젝트 지금까지 사용했던 함수는 main 함수입니다. main 함수는 한 프로젝트에 한 번만 정의하여 사용할 수 있습니다. 반면에 여러 번 사용 가능한 함수는 일반 함수라고 합니다. 일반 함수를 생성하는 방법은 main 함수와 동일합니다. 데이터 타입 함수의 이름(매개변수) { 함수의 몸체 }가 함수의 기본 구조입니다. 함수를 생성하는 것을 함수를 정의한다라고 합니다. 함수의 이름은 절대 중복되면 안 됩니다. 그리고 매개변수는 있을 수도 없을 수도 있습니다. 함수의 데이터 타입 중 void는 리턴되는 값이 없다는 의미로 return 문을 작성하지 않아도 됩니다. 함수는 main 함수 전에 생성해야 합니다. 하지만 함수의 원형을 main 함수 위에 작성해 주면 함수를 main 함수 아래에 작성해도 괜찮습니다. 정.. 2023. 6. 29.
[C언어 공부하기] 8. 반복문 - 우당탕탕 개발자 되기 프로젝트 반복문은 코드 내용이나 문장을 반복할 때 사용하는 문장입니다. 반복문도 여러 가지 종류가 있는데, 먼저 for 문부터 살펴보겠습니다. for 문은 for (초기식; 조건식; 증감식) {조건식이 참일 경우 실행하는 문장} 형태의 기본 구조를 가집니다. 초기식에서 시작하여 조건식의 결과가 참이면 실행하고 증감식이 적용되고 다시 조건식으로 돌아갑니다. 조건식의 결과가 거짓이면 반복을 중단하고 탈출하게 됩니다. 변수를 for 문 안에서 사용하기 위해서는 for 문 전에 변수를 선언해줘야 합니다. 초기식에서 선언해 줄 수도 있지만 헷갈림을 방지하기 위해서 사전에 미리 선언해 주고 초기식에서는 해당 변수를 초기화하는 정도만 적는 것이 좋습니다. 또한 반복문 안에서 변수의 값을 변경하려면 반복문 전에 변수를 초기화해.. 2023. 6. 29.
[C언어 공부하기] 7. 조건문 - 우당탕탕 개발자 되기 프로젝트 조건문은 어떤 해당 조건이 참일 때만 수행되도록 구현하는 문장입니다. 조건문에는 if 문과 switch 문이 있는데 if 문부터 살펴보겠습니다. if 문에도 여러 종류가 있는데 기본적인 if 문은 if (조건식) { 조건이 참일 때 수행할 문장들 } 구조로 작성합니다. 조건이 참일 때 수행할 문장이 한 문장이면 { }가 필요 없지만 여러 문장일 경우 꼭 { }를 활용하여 묶어줘야 합니다. if 문을 사용하고 나서 else 문을 사용하는 if else 조건문은 if 문의 조건이 만족되지 않았을 경우 else 문의 문장이 실행되는 조건문입니다. if else 조건문은 조건에 의해 정확하게 참과 거짓 두가지로 분리되는 경우에 주로 사용합니다. if 문의 참일 때 실행되는 문장에 또다시 if 문을 작성할 수도 .. 2023. 6. 28.
728x90
반응형