[CS50] 배열 - 문자열과 배열
TIL
문자열은 배열이다지금까지 문자열을 저장하기 위해 string 자료형을 사용했다. '문자열'은 문자가 '나열되어 있다' 또는 '배열되어 있다'는 의미다. C에서 string은 정확히 어떻게 정의되어 있을까? 문자열(string) 자료형은 사실 문자(char) 자료형의 배열이다. 문자 배열string s = "HI!";와 같이 문자열 s가 정의되어 있다고 가정해보자. s는 문자의 배열이므로 메모리상에 다음과 같이 저장되며, 인덱스로 각 문자에 접근할 수 있다.가장 끝의 \0은 널 종단 문자로, 문자열의 끝을 나타낸다. 모든 비트가 0인 1바이트를 의미한다. 2차원 배열여러 문자열이 동시에 선언된 경우를 살펴보자.string names[4];names[0] = "EMMA";names[1] = "RODRIGO"..
[CS50] 배열
TIL
메모리와 자료형특정 자료형의 변수를 선언하면 메모리상에 특정 크기만큼 자리를 차지한다. 비슷한 종류의 값을 모아서 저장하려면 어떻게 해야 할까? C의 자료형과 각각의 메모리 크기는 다음과 같다.bool: 불리언, 1바이트char: 문자, 1바이트int: 정수, 4바이트float: 실수, 4바이트long: 더 큰 정수, 8바이트double: 더 큰 실수, 8바이트string: 문자열, ?바이트 컴퓨터 안에는 RAM이라는 물리적 칩이 메모리 역할을 한다.각 사각형이 메모리를 의미하고, 작은 사각형 하나가 1바이트다. 예를 들어 char 타입 변수를 생성하면 한 사각형에 값이 저장된다. 배열배열 선언세 개의 점수를 저장하고 평균을 출력하는 프로그램을 작성해보자.#include #include int main(..
[CS50] 디버깅
TIL
버그와 디버깅코드를 작성하다 보면 의도와 다른 오류나 결과를 맞닥뜨리게 된다. 이를 "버그"라고 하는데, 버그를 효과적으로 찾고 해결하는 방법을 알아보자. 버그(bug)는 코드의 오류로, 프로그램 실행에 실패하거나 원하는 대로 동작하지 않게 만든다. 디버깅(debugging)은 코드의 버그를 식별하고 고치는 과정이다. 프로그래머는 디버거라는 프로그램을 사용하여 디버깅한다. 프로그램은 매우 빠르게 실행되므로, 실행만으로는 오류를 찾기 어렵다. 디버거는 프로그램을 특정 행에서 멈출 수 있게 해주며, 이 지점을 중지점(breakpoint)이라고 한다. 프로그램이 멈춘 후 무슨 일이 일어나는지 확인할 수 있다. 또한 디버거는 프로그램을 한 줄씩 실행할 수 있게 해주어 단계별로 동작을 추적할 수 있다. 디버깅 도..