목록C언어 (12)
juuuding
도전 1 Q) 길이가 10인 배열을 선언하고 정수를 입력 받아서, 홀수 짝수를 구분 지어 출려가는 프로그램을 작성해보자. 일단 홀수부터 출력하고 나서 짝수를 출력하도록 하자. 10개의 정수는 main함수 내에서 입력 받고, 홀수 짝수 함수를 출력하는 함수를 각각 정의해서 두 함수를 호출하는 방식으로 프로그램을 완성하자. [실행의 예] 10개 숫자 입력: 1,2,3,4,5,6,7,8,9,10 홀수 출력: 1,3,5,7,9 짝수 출력: 2,4,6,8,10 #define _CRT_SECURE_NO_WARNINGS #include /*길이가 10인 배열에 정수 입력 받고 짝수, 홀수 따로 출력하는 함수 만들어 호출*/ void Even(int param[]) { int i = 0; printf("짝수 출력: "..
1. 함수의 인자로 배열 전달하기 *함수 호출 시 배열을 통째로 전달하는 방법은 없다. 배열을 통째로 넘겨받으려면 매개변수로 배열을 선언할 수 있어야 하는데 이는 불가능하다. 대신에 함수 내에서 배열에 접근할 수 있도록 배열의 주소 값을 전달하는 것은 가능하다. 1. 배열을 함수의 인자로 전달하는 방식 함수의 매개변수는 포인터 변수로 선언되어야 한다. void ShowArrayElem(int* param, int len) { int i; for (i = 0; i < len; i++) { printf("%d", param[i]); } printf("\n"); } int main(void) { int arr1[3] = { 1,2,3 }; int arr2[5] = { 4,5,6,7,8 }; ShowArrayE..
1. 포인터와 배열의 관계 1. 배열의 이름은 무엇을 의미하는가 배열의 이름은 포인터이다. 단, 그 값을 바꿀 수 없는 상수 형태의 포인터이다. "배열의 이름은 배열의 시작 주소 값을 의미하며, 그 형태는 값의 저장이 불가능한 상수이다". 배열과 포인터의 유일한 차이점은 포인터 변수는 변수이지만, 배열의 이름은 가리키는 대상의 변경이 불가능한 상수라는 점이다. 즉 배열의 이름은 '상수 형태의 포인터'이다. 이처럼 배열의 이름도 포인터이기 때문에 배열의 이름을 피연산자로 하는 * 연산이 가능하다. 2. 1차원 배열이름의 포인터 형과 배열이름을 대상으로 하는 *연산 배열의 이름이나 포인터 변수나 둘 다 포인터이기 때문에, 실제로 포인터 변수는 배열의 이름처럼 사용할 수 있다. 즉, 포인터 변수 ptr을 대상..
1. 포인터란 무엇인가 1. 주소 값의 저장을 목적으로 선언되는 포인터 변수 int main(void) { char ch1 = 'A', ch2 = 'Q'; int num = 7; } 이 코드에서는 총 6바이트(1+1+4)가 메모리 공간에 할당된다. "int형 변수 num은 0x12ff76번지에 할당되어 있다"와 같이 시작번지만을 가지고 위치를 표현한다. 주소 값 0x12ff76번지 역시 정수인데 이것의 저장을 위해 마련된 변수가 "포인터 변수"이다. 따라서 "포인터 변수란 메모리 주소 값을 저장하기 위한 변수"라고 할 수 있다. int main(void) { int num = 7; int* pnum;//포인터 변수 pnum의 선언 pnum = #//num의 주소 값을 포인터 변수 pnum에 저장 ..