별의 공부 블로그 🧑🏻‍💻

🗒️ Programming/C (9)

728x90
  1. 2021.05.08 배열의 유형 및 선언 방법

    배열의 유형 배열의 유형 정적 배열(Static Array) 선언된 블록이 끝나면 소멸됨. 스택(Stack) 메모리 영역에 할당됨. 함수를 벗어날 때, 자동으로 해제됨. 동적 배열(Dynamic Array) 프로그래머가 생성할 시점과 해제할 시점을 자유롭게 설정할 수 있음. 힙(Heap) 영역에 할당됨. 사용자가 직접 해제하기 전까지 유지됨. 두 가지 유형 중에서 필요에 따라 적절한 배열을 선택하여 사용하면 됨. 두 가지 유형 모두 다양한 연산에서 동일한 성능 을 나타냄. 이러한 배열은 C 언어에서 도입되었기 때문에 C 스타일 배열(C Style Array) 라고도 함. 배열의 선언 방법 정적 배열 int arr[size]; // C, C++ 동적 배열 int* arr = (int*)malloc(size..

  2. 2020.06.18 qsort 함수 : 퀵 정렬 라이브러리 함수

    *qosrt 함수 : 퀵 정렬 라이브러리 함수 - C에서 제공하는 퀵 정렬 표준 라이브러리 함수- 사용하려면 헤더 파일을 불러와야 한다. void qsort(void *base, int num, int width, int (*compare)(const void *, const void *));base : 배열의 시작 주소num : 배열 요소의 개수width : 배열 요소 하나의 크기(바이트 단위)compare비교 함수포인터를 통하여 두 개의 요소를 비교하여 비교 결과를 정수로 반환사용자가 제공해야 함.반환값 0 : elem1이 elem2보다 크면- 사용 예 #include #include // qsort() int comp..

  3. 2017.10.06 [C] 배열의 크기를 입력 받아 해당 크기의 배열 생성하기 (동적 할당)

    배열의 크기를 입력 받아 해당 크기의 배열 생성하기 (동적 할당) 가끔. 배열의 크기를 처음부터 확정짓지 못할 경우가 많다. 또 쓰지 않는 공간이 많은 배열을 생성하여 메모리를 낭비하는 경우가 생기곤 한다. 이럴 때는 동적할당을 이용하여 사용자로부터 배열의 크기를 입력 받아 해당 크기의 배열을 생성하여 메모리를 절약할 수 있다. 아래는 예시 코드이다. #include // scanf, printf #include // malloc, free int main(void) { int *arr; // 배열 이름을 포인터 변수로 int n; // 배열의 크기를 받을 변수 int i; printf("배열의 크기 : "); scanf("%d", &n); // 배열의 크기를 받음 arr = (int *)malloc(s..

  4. 2017.09.22 system 함수 : cls. pause

    *system 함수 : cls, pause - system 명령어는 stdlib.h / stdio.h / windows.h 등의 헤더를 인쿨르드해야 함. 1) cls : cmd 창 화면을 지우는 명령어. (Unix/LINUX의 clear 명령어). 2) pause : '계속하려면 아무 키나 누르십시오...'라는 문장 출력. (프로그램 정지) 1 2 3 4 5 6 7 #include int main() { system("pause"); // 화면 정지 system("cls"); // cmd의 화면을 지움 } cs

  5. 2017.09.01 실행 시간 측정 (clock() 이용)

    1 2 3 4 5 6 7 8 9 10 11 12 13 #include void main() { double start, finish, duration; start = clock(); // 시작 시간 Algorithm(); // 측정하려는 알고리즘 finish = clock(); // 종료 시간 // duration에 시간 저장 duration = ((double)(finish - start)/CLOCKS_PER_SEC); } Colored by Color Scripter cs More Information : http://www.cplusplus.com/reference/ctime/clock/

  6. 2017.09.01 goto문

    *goto문 - 기존 어셈블리 코드에서 사용하는 기능을 상위 프로그래밍 언어에 접목시키는 과정에서 생겨난 기능. - 무조건 원하는 레이블로 건너뛰는 기능을 함. - 형식 문장A; goto Label1; 문장B; ... Label1: 문장C; -> 문장A를 실행한 후에 바로 문장C를 수행. (문장 B는 실행 되지 않음.) - 코드 예시 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #include int main() { int i, j; i = j = 0; printf("goto문의 테스트입니다."); do { printf("do-while문의 %d번째 반복입니다. \n", i); for(j = 0; j

  7. 2017.08.31 scanf와 ' '(공백)

    I wonder why scanf wants to get one more than the number of 'num' when I use this function for array index with infinite loop. 5 // The number of the index of an array. 1 2 3 4 5 // I put 5 numbers because I set the number of the index as 5. but.. 6 // I had to put another number to finish the work of scanf. 1 2 3 4 5 // The numbers in the array. 6 has disappeared. Here is a code that I made to ..

  8. 2017.05.03 C 핵심 내용 정리

    1) 변수 - 변수선언 : 자료형 + 변수명 예) int a; - 대입 연산 : 변수에 값 저장 - 정수형 자료형 : char, short, int, long, long long - 양수 전용 자료형 : unsigned 사용. 예) unsigned int ua; - 실수형 자료형 : float, double, long double - 문자열 저장 : char 배열 - const를 사용한 변수 -> 변수의 상수화 - 식별자 : 필요에 따라 만들어 쓰는 단어 2) 상수와 데이터 표현 방법 - 상수 : 프로그램 실행 중에 바뀌지 않는 값 정수 표현 - 12(10진수), 014(8진수), 0xc(16진수) 실수 표현 - 0.0000315(소수점 표기), 3.14e-5(지수 표기) 문자와 문자열 표현 - 'A'(..

  9. 2017.04.17 포인터 정리 (Arrangement of Single Pointer) in C

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #include void main() { int a[2] = { 4, 9 }; int *p = a; printf("1 : %d, \n", *p); // 현재 위치의 값 : 4 printf("2 : %d, \n", (*p)++); // 현재 위치의 값 출력 후 1 증가 (값 증가) : 4 printf("3 : %d, \n", *p++); // 현재 위치의 값 출력 후 주소 1 증가 : 5 printf("4 : %d, \n", *p--); // 현재 위치의 값 출력 후 주소 1 감소 : 9 printf("5 : %d, \n", *(p++); // 현재 위치의 값 출력 후 주소 1 증가 : 5 printf("6 : %d, \n", *p..

728x90


📖 Contents 📖