본문 바로가기

c & c++63

Visual Studio 단축키 #include int main() { int a = 300; printf("output"); return 0; } // 단축키 // 지정한 구문 주석 Ctrl + k, c // 지정한 구문 주석 해제 Ctrl + k, u // Alt Drag 필요한 영역만 // 디버깅 // 디버깅 시작 : F5 // 다음 중단점까지 코드 실행 // 중단점 생성 및 해제 : F9 // 디버깅 중, 구문 수행 : F10 // 디버깅 중, 구문 수행(함수 진입) : F11 // 디버깅 중, 디버깅 종료하기 : shift + F5 // 함수 원형 보기 : ctrl + shift + space // 해당 함수로 이동 : F12 2022. 7. 15.
변수 #include //변수 = 지역변수, 전역변수 ,정적변수 ,외부변수 //전역변수 int global = 0; int add(int a, int b); //함수선언 int main(void) { //지역변수 int i = 0 ; int a = 30; int b = 20; int c = add(a, b); printf("%d ", c); //괄호 안에 선언된 변수 (함수, 지역) { //변수명 규칙 int i = 100; i; //i = 100; } i; //위에 선언된 것으로 생각 i = 0; return 0; } //함수 int add(int a, int b) { return a+b; } 2022. 7. 14.
비트 연산자 //비트연산자 //쉬프트 //전처리 define //전처리 = 본 프로그래밍 소스코드 작성 및 컴파일을 하기 전에 하는 작업들을 일컫습니다. #define HUNGRY 1 //define을 사용하면 좋은점 #define THIRSTY 2 //1. 가독성 #define TIRED 3//2. 유지보수 #include int main(void) { unsigned char byte = 13; byte = 1; // 2^n 나눈 몫 printf("%d ", byte); //비트 곱(&), 합(|), xor(^) 반전(~) //비트 단위로 연산을 진행, //& 둘다 1인 경우 1 // | 둘중 하나라도 1이면 1 // ^ 같으면 0, 다르면 1 // ~1 = 0, 0 = 1 unsigned int iStatus .. 2022. 7. 14.
계수정렬(Counting Sort) Goal - Counting Sort 에 대해 설명할 수 있다. - Counting Sort 과정에 대해 설명할 수 있다. - Counting Sort를 구현할 수 있다. - Counting Sort의 시간 복잡도를 계산 할 수 있다. 1. Counting Sort Summary - '범위 조건'이 있는 경우에 한해서 제일 빠른 알고리즘 O(N) - '크기의 기준으로' 세는 알고리즘 2. Counting Sort Processing - 원소의 크기 범위만큼 배열을 만든다 - 각각 값들이 몇개인지 확인 후 그 개수만큼 출력 3. Counting Sort Coding //계수정렬 #include int main(void) { int i , j, temp; int count[5]; int array[30] =.. 2022. 7. 12.
힙 정렬(Heap) Goal - Heap Sort 에 대해 설명할 수 있다. - Heap Sort 과정에 대해 설명할 수 있다. - Heap Sort를 구현할 수 있다. - Heap Sort의 시간 복잡도를 계산 할 수 있다. 1. Heap Sort Summary - 힙 트리 구조(Heap Tree Structure)를 이용하는 정렬방법 - 최솟값과 최댓값을 빠르게 찾아내기 위해 완전 이진 트리를 기반으로 하는 트리 - 이진 트리에 대한 이해 필요(완전 이진 트리) - 최대힙 = '부모 노드'가 '자식 노드' 보다 큰 힙 - 힙 생성 알고리즘 (Heapify Algorithm) 을 사용해야함 - 힙 생성 알고리즘 = 특정한 노드의 두 자식 중에서 더큰 자식과 자신의 위치를 바꾸는 알고리즘 2. Heap Sort Proces.. 2022. 7. 11.
병합 정렬(Merge Sort) Goal - Merge Sort 에 대해 설명할 수 있다. - Merge Sort 과정에 대해 설명할 수 있다. - Merge Sort를 구현할 수 있다. - Murge Sort의 시간 복잡도를 계산 할 수 있다. 1. Merge Sort Summary '반으로 쪼개고 나중에 합치기' 시간 복잡도 O(N * logN)을 보장해줌 2. Merge Sort Processing 1. 작은 순서대로 배열에 삽입 2. 남은 데이터 삽입 3. 정렬된 배열을 삽입 3. Merge Sort Coding #include int number = 8; int sorted[8]; //정렬 배열은 반드시 전역 변수로 선언 void merge(int a[], int m, int middle, int n) { int i = m; .. 2022. 7. 1.
문자열형 상수(const char*) #include #define COUNTRY "대한민국" #define CUTE "This is cute" const char* soccer = "나는 축구를 좋아합니다."; int main(void) { printf("문자열 상수 COUNTRY : %s \n", COUNTRY); printf("문자열 상수 CUTE : %s \n", CUTE); printf("문자열 상수 SOCCER : %s \n", soccer); return 0; } 문자열 상수 COUNTRY는 상수이기 때문에 프로그램의 어디에서도 변경될 수 없다. 문자열 상수 CUTE는 상수이기 때문에 프로그램의 어디에서도 변경될 수 없다. 문자열 상수 soccer 값 또한 상수이기 때문에 프로그램 어디에서도 변경될 수 없다. const char.. 2022. 6. 30.
문자열형 변수(char*) #include int main(void) { char string[30] = "개발자로 끊임없이 성장하자"; char *p = "I love coding"; printf("문자열형 변수 string = %s \n ", string); // %d로출력하면 string의 시작 주소 출력 printf("문자열형 변수 p = %s \n", p); // %d로 출력하면 p가 가리키고 있는 주소 출력 return 0; } 문자열을 정의하는 방법 = char [ ], char* 두가지의 차이점 string = 문자열 변수 p = 문자열 상수 ("I love coding")의 시작주소 문자열과 메모리의 구조 'I' ' ' 'l' 'o' 'v' 'e' ' ' 'c' 'o' 'd' 'i' 'n' 'g' '\0' ↑ ch.. 2022. 6. 30.
정수형 변수(int) #include main() { int n; //int 형 범위 = -2,147,483,648 ~ 2,147,483,647 unsigned int k; //unsigned int 형 범위 = 0 ~ 4,294,967,295 int i; n = 2000000000; k = 4000000000; i = 'a'; printf("정수형 변수 n의 값은 %d \n", n); //결과값 20억 printf("정수형 변수 k의 값은 %d \n", k); //결과값 40억 printf("정수형 변수 i의 값은 %d \n", i); // 'a' ASCII 코드값 '97' } int형 외의 정수형 변수 short -32768 ~ 32767 unsigned short 0 ~ 65535 long -2,147,483,648 ~.. 2022. 6. 30.
문자형 변수 (char) #include main() { char c; //default값이 "signed" 범위 = -128 ~ 127 unsigned char k; //unsigned 범위 = 0 ~ 255 char kk; // ASCII 알파벳 소문자 a = 97; c = 200; k = 200; kk = 'a'; printf("문자형 변수 c = %d \n", c); // 결과값 = -56 범위값보다 크기때문에 (overflow) printf("문자형 변수 k = %d \n", k); // 결과값 = 200; 범위값에 들어감 printf("문자형 변수 kk = %d \n, kk); // 결과값 = 97 } 아스키(ASCII) = 컴퓨터에서 사용되는 문자 값으로 각각의 문자 값은 전 세계적으로 동일하게 규정되어 있다. - .. 2022. 6. 30.
컴파일 개념 컴파일러(compiler) 는 프로그래머가 입력한 코드에 에러가 있는지 여부를 검사하여 목적코드를 생성하는 역할을 한다. 목적코드는 링커 라는 프로그램에 의해 실행 가능한 프로그램으로 변환된다. 소스코드(.c) -> 컴파일러 -> 목적코드(.obj) -> 링커 > 실행 가능한 프로그램(.exe) C 프로그래밍 개발 과정 1단계 - 에디터를 사용하여 소스 코드를 입력합니다. 2단계 - 컴파일러를 사용하여 프로그램을 컴파일합니다. 3단계 - 링커를 사용하여 프로그램을 링크합니다. 4단계 - 프로그램을 실행합니다. 2022. 6. 30.
C언어 함수 개념 #include int plus(int n); //plus 함수 선언 int main(void) { printf("%d ", plus(10)); //함수 호출, 함수 결과 값 출력. 결과 값 = 55 return 0; } int plus( int n) // 리턴형 int , 함수명 plus, int형 매개변수(parameter) 선언 { int i ; int sum = 0 ; // 합을 구할 sum 변수 선언, 초기화 for(i = 1; i 연산 -> 결과 출력 2022. 6. 30.