-
NAVER 부스트코스 CS50 - 3. 배열공부일기/CS50 2020. 8. 10. 21:05
3. 배열
3-1 컴파일링
전처리: #로 시작하는 헤더파일은 해당 파일의 실제코드로 대체 된다.
컴파일: 어셈블리 코드로 바뀌고(CPU가 실제 이해하는 언어에 가까워짐), 명렁어 실행.
어셈블링: 0과 1로 이루어진 머신코드를 만듦. 어셈블리 코드를 오브젝트 코드로 변경.
링킹: 위 단계에서 생성된 파일들을 연결.
3-2 디버깅
버그: 의도하지 않은 프로그램 내의 실수
논리적 오류 해결을 위해서 printf( ) 함수를 사용할 수 있다.
코드가 적힌 행 옆의 빨간 점을 클릭해 단계별로 실행할 수 있다.
3-3 코드의 디자인
코드 작성 만큼이나 중요한 건 코드가 정확한지 확인하는 테스트를 만드는 것이다.
특히 새로운 기능을 추가할 때 프로그램이 잘 작동하도록 작동여부를 확인해야 한다.
코드 작성시에는 나와 다른 사람들이 읽기 쉽도록, 유지보수하기 쉽도록 해야 한다.
3-4 배열(1)
형변환: 하나의 자료형을 다른 종류로 바꾸는 행위
여러 개의 값을 가진 하나의 변수를 만들고 싶을 때 배열을 사용
값들의 리스트로 모두 같은 자료형의 값들이 같은 이름의 변수에 저장돼있다.
3-5 배열(2)
const 함수를 사용해 전역변수로 활용할 수 있다.
전역변수는 함수 바깥에서 선언하는 변수, 관례적으로 대문자료 표기
3-6 문자열과 배열
C에서 문자열의 저장공간 크기는 문자의 갯수 +1 이다.
\0 : 널 종단 문자
2차원 배열이 이뤄질 수 있다.
문자열의 길이 제한이 있을 수 있을까? -> 컴퓨터가 가진 메모리의 용량만큼 제한.
3-7 문자열의 활용
strlen( ) : 문자열의 길이를 알려주는 함수
3-8 명령행 인자
int main(void)
int : 출력 변수
void: 입력으로 받는 변수.
int main(int argc, string argv[])
argc는 main 함수가 받게 될 입력의 개수
argv[]는 그 입력이 포함되어 있는 배열. 처음에 입력하는 프로그램 이름이 argv[0].
// 개인적으로 3주 차가 난이도가 급상승해서 혼자서는 미션을 풀지 못했고, 팀원분들 덕분에 해냈다. 샘플 코드도 이해하기 힘들었어서 팀원분이 쓰신 코드를 주석을 보며 따라가고 이해하려고 했다. C에서 포인터 개념은 아직 낯설고 어렵다. 아 그리고 malloc() 함수를 활용해 동적 메모리 할당을 한 후에는 free() 함수를 사용해 메모리 할당을 해제해야 메모리를 효율적으로 활용할 수 있다!
'공부일기 > CS50' 카테고리의 다른 글
NAVER 부스트코스 CS50 - 6. 자료구조 (0) 2020.08.19 NAVER 부스트코스 CS50 - 5. 메모리 (0) 2020.08.17 NAVER 부스트코스 CS50 - 4. 알고리즘 (0) 2020.08.12 NAVER 부스트코스 CS50 - 2. C언어 (0) 2020.08.05 NAVER 부스트코스 CS50 - 1. 컴퓨팅 사고 (0) 2020.08.03