ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • CS50 강의 간단 정리
    코테/c++ 2023. 6. 18. 20:27

    https://www.boostcourse.org/cs112/joinLectures/41307

     

    모두를 위한 컴퓨터 과학 (CS50 2019)

    부스트코스 무료 강의

    www.boostcourse.org

     

    컴퓨터의 0과 1을 나타내는 스위치는 '트랜지스터'

     

    128개의 문자를 숫자로 표현한 것이 아스키 코드 (A=65=0x41, a=97=0x61)

    더 많은 문자를 표현 하는 것은 유니코드

     

    컴파일의 4단계

    1.전처리(precompile): #include <stdio.h>

    2.컴파일: C언어 -> 어셈블리어 (MOV ADD PUSH)

    3.어셈블: 어셈블리 코드 ->오브젝트 코드 (011010011)

    4.링크: 라이브러리(헤더)를 포함한 여러 오브젝트 파일을 하나로 합침

     

     

    명령행 인자

    int main(int argc, string argv[])

    argc = main 함수가 받은 input의 개수.

    argv[] = input 값들이 저장된 배열

    argv[0]엔 기본적으로 프로그램명이 저장됨

     

     

    https://www.rapidtables.org/ko/convert/number/decimal-to-hex.html

     

    10 진수에서 16 진수로 변환기

    에서 바이너리 소수 16 진수 받는 사람 바이너리 소수 16 진수

    www.rapidtables.org

    2개의 16진수는 1byte의 2진수로 변환되다

     

     

     

     

     

     

    문자열

    string s = "ocid";

    char *s = "ocid";

    둘의 의미는 동일하다

     

        string s = get_string("s: ");
        string t = get_string("t: ");
    
        // 두 문자열을 비교 (각 문자들을 비교)
        if (s == t)

    두 문자열의 내용이 같더라도 둘의 주소가 다르므로 if문이 성립 x

    둘을 비교하려면 반복문으로 하나하나 비교 필요

     

        string s = get_string("s: ");
        string t = s;

    마찬가지로 위와 같이 문자열을 복사하면 얕은 복사가 되어

    t의 값을 변경하면 s도 변경된다

        char *s = get_string("s: ");
        char *t = malloc(strlen(s) + 1);

    그러므로 malloc을 사용하여 깊은 복사를 해야하며

    널문자를 감안하여 1 키워준다

     int *tmp = realloc(list, 4 * sizeof(int));

    배열 크기 변경을 위해 재할당

     

     

     

     

    메모리 교환

    void swap(int a, int b)
    {
        int tmp = a;
        a = b;
        b = tmp;
    }
    void swap(int *a, int *b)
    {
        int tmp = *a;
        *a = *b;
        *b = tmp;
    }

    위 코드는 함수 내 지역변수 값만 변경되므로 아래와 같이 주소 변수를 써야함

     

     

     

     

    트라이

    각 노드가 배열로 이루어진 트리

    문자열 검색에 효과적이나 메모리 공간 낭비가 큼

     

     

     

     

     

     

     

    '코테 > c++' 카테고리의 다른 글

    스플릿 함수  (0) 2023.06.27
    시행착오  (0) 2023.06.19
    소수점 처리  (0) 2023.03.02
    DFS & BFS  (0) 2023.02.23
    <vector>, <queue>, <string>  (0) 2023.02.22
Designed by Tistory.