728x90
반응형

CS50 정리

· CS50 정리
배열의 크기 조정하기 배열의 크기를 키우려면 새로운 공간에 큰 크기의 메모리를 다시 할당하고 기존 값을 옮겨야 함 realloc() 함수를 통해 새로운 크기의 메모리를 다시 할당할 수 있음(확장 및 축소 가능) 기존 메모리의 내용은 유지하면서 메모리의 크기 변경 가능 새로 늘어난 부분의 값은 쓰레기 값 사용자가 요구한 크기만큼 연속되게 메모리를 확보할 수 없다면 해당 주소를 버리고 다른 공간에서 필요한만큼 메모리를 확보 #include #include int main(void) { int *list = malloc(3 * sizeof(int)); if (list == NULL) { return 1; } list[0] = 1; list[1] = 2; list[2] = 3; // tmp 포인터에 메모리를 할..
· CS50 정리
메모리 주소 16진수(Hexadecimal) 컴퓨터과학에서는 10진수, 2진수 대신 16진수(Hexadecimal)로 표현하는 경우가 많다. 0 ~ 9 / A ~ F : 총 16개로 16진수를 표현 가능(F = 15) 16진수임을 알리기 위해 문자 앞에 0x 를 붙혀서 표현 메모리 주소 n은 int 타입이기 때문에, 컴퓨터 메모리 4 byte만큼의 자리를 차지하며 저장됨 변수의 메모리상 주소를 받기 위해 &라는 주소 연산자와 %p라는 형식 지정자를 사용 Pointer(p , 포인터) : 컴퓨터 메모리의 주소 메모리 주소에 있는 실제 값을 얻으려면 * 라는 참조 연산자를 사용 #include int main(void) { int n = 50; // 메모리 주소를 출력 printf("%p\n", &n); /..
· CS50 정리
검색 알고리즘 배열 한 자료형의 여러값들이 메모리상에 모여있는 구조 컴퓨터는 값에 접근할 때 인덱스( a[0]) 한개씩 확인 선형 검색(Linear Search) 배열의 인덱스 처음부터 하나씩 차례대로 검색하는 알고리즘 데이터의 개수가 늘어날수록 시간이 오래 걸리는 단점이 있음 최대 검색 횟수 : n회 (=데이터 수) → 끝까지 발견되지 않는 경우 평균 검색 횟수 : n / 2회 검색량 O(N) 이진 검색(Binary Search) 원하는 값을 찾을 때까지 검색할 데이터의 범위를 반씩 줄여가며 찾는 알고리즘 선형 검색과는 다르게 특정 기준에 따라 오름차순 또는 내림차순으로 정렬된 리스트를 받아야 함 최대 검색 횟수 : (log2n)+1 평균 검색 횟수 : log2n 알고리즘 표기법 Big-O 표기법 : ..
· CS50 정리
컴파일링 컴파일링은 4단계로 나눌 수 있다.(전처리 → 컴파일 → 어셈블 → 링크) 전처리(Preprocessing) #으로 시작되는 C 소스 코드는 전처리기에게 실질적인 컴파일이 이루어지기 전에 무언가를 실행하라고 알려줌 #include #include 컴파일(Compiling) 전처리한 소스코드를 어셈블리어라는 저수준 프로그래밍 언어로 컴파일함 (컴퓨터가 이해하도록 하기 위해서) 어셈블(Assembling) 어셈블리 코드를 CPU가 이해할 수 있도록 오브젝트 코드로 변환함 (연속된 0과 1로 이루어진 명령어 형태) 링크(Linking) 여러 개의 다른 오브젝트 코드 파일을 실행 가능한 하나의 오브젝트 코드 파일로 합쳐줌 디버깅 버그(Bug) 코드에 들어있는 오류 디버깅(Debugging) 디버거 프로..
· CS50 정리
C 기초 #include int main(void) { printf("hello, world\n"); } #include : 작성하고 있는 코드에 오른쪽에 있는 코드를 포함시키겠다. (standard input output) : h는 header를 의미 / 표준입출력에 관한 내용을 담고있다. (파일입출력 / 콘솔화면 입출력 / 파일구조체 / 문자입출력 등등) ìnt : 함수의 반환값이 정수형 main : C언어가 동작할 때 시작점이 되는 함수 (void) : 인자로 아무것도 받지 않는 것을 의미 printf() : 문자열을 화면에 출력하는 함수 / 문자열을 “”(큰따옴표) 안에 작성 💡 모든 명령어 끝에는 세미 콜론(;) 작성 컴파일러 우리가 작성한 코드 : 소스코드 컴퓨터가 이하하는 코드 : 머신코드(..
· CS50 정리
CS50 1강[컴퓨팅 사고] 2진법(Binary) 0과 1로 숫자를 표현(글자, 사진, 영상, 소리 등을 저장) 비트(Binary Digit, bit) 0 또는 1 / 참 또는 거짓 (컴퓨터 용량이나 프로그램 처리능력의 최소 단위) 트랜지스터(Transfer Resistor) : 연산을 수행하는 가장 기본이 되는 소자(1비트) / CPU, 메모리, 그래픽 카드 등에 사용 읽는 방법 : 오른쪽부터 읽음 LSB(Least Significant Bit) : 가장 작은 비트 / 가장 오른쪽에 있는 첫번째 비트 (예시 : 01100011 LSB는 1이다) MSB(Most Significant Bit) : 가장 큰 비트 / 가장 왼쪽에 있는 첫번째 비트 (예시 : 01100011 MSB는 1이다)(부호비트라고도 부..
728x90
반응형
개발찾아 삼만리
'CS50 정리' 카테고리의 글 목록