Small Grey Outline Pointer 'Dev./C++' 카테고리의 글 목록
본문 바로가기

Dev./C++40

구조체 종합문제 5 배열 swap 함수 사용하여 값 바꾸기 #include #include void swapArr(int* arr1, int* arr2, int length) { int temp = 0; for (int i = 0; i < length; i++) { temp = arr1[i]; arr1[i] = arr2[i]; arr2[i] = temp; } } void main() { int arr1[5] = { 1,3,5,7,9 }; int arr2[5] = { 2,4,6,8,10 }; int length = 5; int i; swapArr(arr1, arr2, length); for (i = 0; i < length; i++) { printf("%d ", arr1[i]); } printf("\n"); for (i = .. 2022. 4. 10.
동적 메모리 할당 (복습 ) 동적 메모리 할당: 일반적으로 변수는 프로그램을 실행하는 순간 사용할 메모리의 크기를 고려하여 메모리를 할당 -> 이렇게 프로그램이 실행되기 전 할당 되는 메모리를 정적 메모리 라고 한다 따라서, 프로그램 실행 도중 메모리를 할당 받는 것을 동적 메모리 할당이라고 한다 3명의 사용자의 점수 입력 받아 저장 int score[3]; scanf("%d", &score[0]); scanf("%d", &score[1]); scanf("%d", &score[2]); =>정적 메모리 :프로그램이 실행되기전 이미 결정 된 크기를 갖는다 몇 명 입력하시겠습니까? (입력 숫자) 입력한 숫자만큼 배열의 크기를 생성 ->프로그램이 실행되고 있는 순간에 배열의 크기를 지정 (내가 코드를 계속 수정할 필요가 없다!) 동적 메모.. 2022. 4. 10.
구조체 종합문제 배열 SWAP 하기 #include #include #include typedef struct { int xpos; int ypos; }Point; void printPoint(Point point) { printf("x: %d, y:%d\n", point.xpos, point.ypos); } void prac2002() { Point position1 = { 3,6 }; Point position2 = { 4,9 }; Point temp; temp = position1; position1 = position2; position2 = temp; printPoint(position1); printPoint(position2); } void main() { prac2002(); } x: 4, y:9 x: 3.. 2022. 4. 6.
구조체배열 응용문제 #include #include #include struct person { char name[30]; int number; int age; }; void ex1903() { struct person boy[3]; struct person girl[3]; for (int i = 0; i < 3; i++) { printf("소년 이름을 입력하세요: "); //scanf("%s", boy[i].name); scanf("%s", boy[i].name); printf("소년 나이를 입력하세요: "); scanf_s("%d", &boy[i].age); //printf("소년 번호를 입력하세요: "); //scanf_s("%d", &boy[i].number); } for (int i = 0; i < 3; i++) .. 2022. 4. 5.
구조체와 배열/구조체와 포인터 구조체별명, 초기화 #include typedef struct Fruit { char name[200]; int price; char season[200]; }F; //구조체별명 void main() { F apple = { "사과", 1500, "가을" }; F pear = { "배", 3500, "겨울" }; F banana = { "바나나", 500, "여름" }; printf("%s %d %s\n", apple.name, apple.price, apple.season); printf("%s %d %s\n", pear.name, pear.price, pear.season); printf("%s %d %s\n", banana.name, banana.price, banana.season); } 사과 1.. 2022. 4. 5.
메모리의 동적할당/malloc 메모리의 동적 할당 #include #include #include void ex1802() { int arrsize, darrsize; printf("arr size, darrsize 입력: "); scanf_s("%d %d", &arrsize, &darrsize); int* iptr = (int*)malloc(sizeof(int) * arrsize); double* dptr = (double*)malloc (sizeof(double) * darrsize); int i; printf("int 값 출력 및 입력 \n"); for (i = 0; i < arrsize; i++) { printf("%d번째 array값 입력: "); scanf_s("%d", &iptr[i]); } for (i = 0; i < .. 2022. 4. 4.
구조체 [구조체] 공통 요소(멤버 변수)로 구조화(구체화) 시켜 놓은 것 후에 이러한 구조체의 개념은 객체 지향 프로그래밍에서는 class 개념으로 확장되어 사용된다 배열:여러개의 같은 자료형을 하나로 묶는 것 구조체:서로 다른 자료형들을 하나로 묶는 것 [목적] 반복되는 공통 요소를 쉽게 관리 하기 위해서 [구조체 선언] struct 구조체 이름 { 자료형 멤버변수명, }; typedef struct 구조체이름 { 자료형 멤버변수명, }구조체별명; [선언시 주의사항] -함수 밖에서 선언해야 한다 -선언 시 멤버 변수에 초기값을 넣을 수 없다 [구조체 사용] struct 구조체이름 변수명; 구조체이름.멤버변수명=값; struct 구조체이름 변수명={값,....}; typedef 을 선언했다면 아래와 같이 사용한.. 2022. 4. 4.
포인터의 포인터/싱글포인터/더블포인터 포인터 변수에 대한 접근 #include void main() { int num = 3; int* ptr1 = &num; //num의 주소를 저장하는 포인터 변수 ptr1 int** dptr = &ptr1; //포인터변수 ptr1의 주솟값을 저장하는 더블포인터 int* ptr2; printf("%p %p\n", ptr1, dptr); printf("%d %d\n", num, **dptr); ptr2 = *dptr; //ptr1이 저장하고 있는 주소(*dptr)를 ptr2에 저장 *ptr2 = 9; printf("%d %d\n", num, **dptr); } 00000086EEAFF764 00000086EEAFF788 3 3 9 9 더블 포인터와 call by reference #include void s.. 2022. 4. 1.
c언어 난수 발생시키기/가위바위보/오름차순,내림차순 #include #include int ten(int ran) { //1~10까지 이므로 %10(나머지) return ran % 11; } void ex1() { int ranNum = rand(); int i; for (int i = 0; i < 5; i++) { printf("난수: %d, 10자리 난수: %d\n", ranNum,ten(ranNum)); ranNum = rand(); } } int main() { ex1(); } 난수: 41, 10자리 난수: 8 난수: 18467, 10자리 난수: 9 난수: 6334, 10자리 난수: 9 난수: 26500, 10자리 난수: 1 난수: 19169, 10자리 난수: 7 #include #include void main() { int ranNum = ra.. 2022. 4. 1.
함수 심화 문제 /배열을 전달 받는 함수/call by value / call by reference [01] 배열을 전달 받는 함수 예제 #include int arrinput(int *arr, int a) { for (int i = 0; i < a; i++) { printf("%d번째 값 입력: ", i + 1); scanf_s("%d", &arr[i]); } } int readArray(int* arr, int length) { printf("배열의 요소 읽어보기: [ "); for (int i = 0; i < length; i++) { printf("%d", arr[i]); if (i + 1 < length) { printf(", "); } else { printf(" "); } } printf("]\n"); } int main() { int arr[3]; arrinput(arr, 3); read.. 2022. 3. 30.