본문 바로가기

c언어9

윤성우 열혈C 도전 프로그래밍2 문제1. 길이가 10인 배열을 선언하고 총 10개의 정수를 입력 받아서, 홀수와 짝수를 구분 지어 출력하는 프로그램을 작성해 보자. 일단 홀수부터 출력하고 나서 짝수를 출력하도록 하자. 단, 10개의 정수는 main함수 내에서 입력받도록 하고, 배열 내에 존재하는 홀수만 출력하는 함수와 배열 내에 존재하는 짝수만 출력하는 함수를 각각 정의해서 이 두 함수를 호출하는 방식으로 프로그램을 작성하자. 예제입력1) 1 2 3 4 5 6 7 8 9 0 예제출력1) 홀수 : 1, 3, 5, 7, 9 짝수 : 2, 4, 6, 8, 0 해설 함수로 배열을 전달한 후에 함수내에서 만약에 홀수를 출력하는 함수이면 전달된 배열의 각 인덱스 요소를 2로 나누었을시 나머지가 0이 아니면 출력, 짝수일 경우 나머지가 0일 경우 .. 2023. 8. 2.
C언어 - 포인터의 포인터 1. 포인터 변수를 가리키는 이중 포인터 변수 (더블 포인터 변수) 포인터의 포인터는 포인터 변수를 가리키는 또 다른 포인터 변수를 뜻하는 의미로 흔히 "이중 포인터" 또는 "더블 포인터"라 부르며 아래와 같이 포인터 변수의 선언에 사용되는 * 연산자를 두 개 이어서 선언한다. int** dptr //int형 이중 포인터 아래의 코드를 한번 살펴보자 int num = 0; int* ptr = # 우리는 앞서 포인터를 공부하면서 위의 예제를 수도 없이 봤었다. num은 변수이기 때문에 주소값이 존재하고 이 주소값을 얻어서 int형 포인터 변수인 ptr에 저장을 하였다. 여기서 변수 num과 포인터 변수 ptr의 차이점과 공통점을 정리해보자면.. 공통점 : 둘 다 변수이다. 따라서 값의 저장이 가능하.. 2023. 7. 27.
C언어 - 다차원 배열 1. 2차원? 3차원? 배열 다차원 배열은 2차원 이상의 배열을 의미한다. 다차원 배열은 1차원 배열의 연장선상에 놓여있다고 생각하면 된다. 2차원 배열과, 3차원 배열은 논리적으로 각각 2차원과 3차원의 형태를 띤다. 즉, 2차원 배열은 평면구조의 배열이고, 3차원 배열은 직육면체 구조의 배열이다. C언어에서 문법적으로 4차원, 5차원 배열의 선언도 가능은 하지만 그것은 의미를 부여하기 힘든, 의미가 없는 배열이다. 따라서 다차원 배열은 2차원, 3차원 배열을 의미하는 것으로 이해하면 된다. 1차원, 2차원, 3차원 배열의 선언형태는 다음과 같다. int arrOne[10]; //길이가 10인 1차원 int형 배열 int arrTwo[5][5]; //가로, 세로의 길이가 각각 5인 2차원 int형 배열.. 2023. 7. 26.
C언어 - 포인터와 함수에 대한 이해 1. 함수의 인자로 배열 전달하기 이번 포스팅에서는 함수의 인자로 배열 전달하는 방법에 대해서 알아보겠다. 우리가 함수호출 시 전달되는 인자의 값은 매개변수에 복사가 된다. 즉, 복사가 되는 것뿐이기 때문에 함수가 호출되고 나면, 전달되는 인자와 매개변수는 별개가 된다. 이와 관련해서 다음 코드를 살펴보자. #include void SimpleFunc(int num) { .... } int main(void) { int age = 17; SimpleFunc(age); //age에 저장된 값이 매개변수 num에 복사됨 ..... return 0; } 위 코드는 SimpleFunc 함수의 호출을 통해서 인자로 age를 전달하고 있다. 그러나 매개변수를 선언해서 age가 가지고 있는 값이 전달될 뿐이지, 실제.. 2023. 7. 21.