모두를 위한 컴퓨터 과학 스터디 - 3회차

박재영·2022년 2월 5일

배열

1.컴파일링

컴파일 과정

  1. 전처리
    #include 라인을 참조하는 라이브러리 파일(h 확장자)로 대체
  2. 컴파일링
    전처리한 C 코드를 어셈블리 코드로 변환
  3. 어셈블링
    어셈블리 코드를 머신코드(0,1) 로 변환
  4. 링킹
    여러 개의 파일(c 확장자)을 하나의 머신코드로 합치는 단계

2. 디버깅

디버깅

  • 디버깅 : 코드에 있는 버그(오류)를 식별하고 고치는 과정
  • 중지점 : 프로그램이 멈추는 특정 지점
  • 디버거 : 프로그램을 한번에 한 행씩 실행하여 버그를 찾도록 도움을 줌

3. 배열

자료형 메모리

  • bool : 1바이트
  • char : 1바이트
  • int : 4바이트
  • float : 4바이트
  • long : 8바이트
  • double : 8바이트
  • char[]: ? 바이트 (글자수 + 1 바이트)

배열

  • 배열: 같은 자료형의 데이터를 메모리상에 연이어서 저장, 하나의 변수로 관리
int scores[3]; // 3개의 int 형 데이터를 저장 
  • 전역변수: main 함수 밖에 선언한 변수,
  • const : 코드 전반에 거쳐 바뀌지 않는 값으로 지정, 관례적으로 대문자 표기
  • c 언어에서는 자바나 파이썬과 달리 배열의 길이를 따로 저장X

문자열과 배열

  • 문자열은 큰따옴표("")를 사용
  • 문자열은 메모리에 저장된 일련의 연속된 문자(char)의 배열
  • 문자열 길이를 지정하지 않았을 경우 '\0' (NULL 종단 문자) 로 문자열 끝을 표시

문자열의 활용

  • '\0'(NULL 종단 문자) 를 for 루프 조건식으로 두고 반복
  • 'string.h' 에서 strLen 으로 문자열 길이 계산
  • 'string.h' 에서 toupper 로 대문자 변환

4. 명령행 인자

  • int main(int argc, string argv[])

  • args: 입력 개수

  • argv[] : 입력 값들이 들어있는 배열

  • argv[0] : 프로그램 이름

  • main 반환값(0, 문제 없음)이 있는 이유? 문제가 있으면 컴퓨터에 보내는 신호로 사용

0개의 댓글