42서울의 본과정은 11월 15일에 5기 오리엔테이션을 시작으로 16일부터 본격적으로 시작된다. 시작되기 전 과정에서의 과제 등을 확인할 수 있는데 8일에 진행한 Kick-off 미팅에서 보컬님들의 조언으로는 그전까지 과제하지 말고, 커뮤니티나 실컷 보면서 여러 정보를 습득하라고 말씀해주셨다. 아직 원격 접속에 대한 안내도 없어서 어찌 보면 과제에 치중하지 말고, 앞으로 42에서 경험하게 될 문화나 가져야 할 자세에 대해 고민하는 시간을 가지라는 말을 내포할지도 모른다.(아닐지도 ㅎㅎ) 그래서 커뮤니티나 구글링을 통해 정리된 생각을 이 글에 조금씩 적어보려 한다. 처음 말해보고 싶은 내용은 고등학교나 대학교까지의 학생으로서의 자세와 사회에 나온 직장인으로서의 자세이다. 직장인이라고 함은 단순히 돈을 버는..
1. 프로그램 만들기 1.1 컴파일 과정 3단계 1) 1단계 전처리 사용자가 작성한 소스파일을 처음에 가공하는 과정이다. #include가 전처리 지시자이며 이후에 작성하는 등의 헤더 파일, 즉 라이브러리를 불러올 수 있다. 이로써 외부에 있는 함수를 직접 정의하지 않아도 사용할 수 있다. 전처리 과정은 주로 소스 파일을 컴퓨터에 맞게 편집하는 일이므로 파일의 형태에는 변화가 없습니다. 2) 2단계 컴파일 전처리가 된 소스 파일은 컴파일 과정을 거쳐 기계어로 변환된다. 변환된 것은 개체 파일이라고 하며, CPU가 해석할 수 있는 기계어로 된 명령어들로 이루어져 있지만 바로 실행할 수는 없다. 프로그램은 운영체제에 의해 실행되어서 설치된 운영체제가 인식할 수 있는 형태로 바꿔야 한다. 3) 3단계 링크 이..
변수 값을 출력하기 위해선 꼭 변수 선언과 값 초기화를 해줘야 한다. 선언과 동시에 초기화를 해도 되고, 선언 뒤에 초기화를 해도 되지만 꼭 초기화를 해야한다는 이야기이다. 아래는 변수 이름을 정할 때의 규칙을 소개해드려고 한다. 이 규칙들을 지키지 않으면 컴파일 단계에서 에러가 발생하므로 꼭 주의하길 바란다. 1. 변수 이름은 문자나 숫자 또는 _(밑줄)로 구성할 수 있으나 숫자로 시작할 수는 없다. ex) int _3a; (가능), int 3a; (불가능) 2. 변수 이름은 대/소문자를 구분한다. ex) int a;와 int A;는 서로 다르다. 3. C 언어에서 예약어 키워드는 사용할 수 없다. ex) int float;과 double int;는 불가능하다. 4. 특수 문자는 변수 이름에 들어갈 수..
지금까지 변수를 선언하고, 정수나 실수 등 숫자로 초기화하는 것들만 다뤄봤는데 이번엔 문자로 초기화하는 것을 다뤄보겠다. 컴퓨터는 2진법만 이해할 수 있으므로 문자도 2진법으로 표현해준다면 충분히 표현할 수 있다. 그래서 공통적으로 모두 하나의 규격으로 사용하자라고 만든 것이 아스키 코드이다. 이는 따로 외우지 않아도, 표를 보면서 사용할 수도 있고, 숫자로 초기화하는 것 뿐 아니라 직접 문자를 넣을 수 있다. 직접 확인해보자. 이 때 문자형은 새로운 자료형 변수 선언 형태를 띄는데 char(character variable)을 사용한다. 이 값은 아래와 같이 나온다. 문자 자료형에 숫자로 입력하면 그에 해당하는 문자가 출력이 되고, 작은 따옴표(') 안에 사용하고자 하는 문자를 직접 넣어도 변수 초기화..
1. 변수의 저장 범위 int는 정수를 저장하는 데 필요한 메모리 공간을 4바이트 사용한다. 컴퓨터는 2진수로만 정보를 처리하고, 이때 0과 1을 저장할 수 있는 메모리 공간을 비트라고 한다. 비트는 컴퓨터가 정보를 저장하는 최소 공간으로, 8개의 비트가 모인 공간을 바이트라고 한다. 그러므로 4바이트는 32비트와 같다. 정리하면 n비트로 저장 가능한 숫자의 범위는 0 개부터 (2^n-1) 개까지 이다. 예를 들어 4바이트는 32비트이므로 n = 32이다. 2^32 = 4,294,967,296 이고, 모든 정수는 양수와 0 그리고 음수까지 표현하기 때문에 2로 나눈 -2,147,483,648 부터 2,147,483,647까지 나타낼 수 있다. 다시 말해 이 범위를 벗어나면 int 자료형을 사용해서 저장할..
sizeof(a)는 a를 저장하는 데 필요한 바이트 수를 알려주는 연산자이다. 따라서 sizeof(int)는 int 자료형 변수를 저장하는 데 몇 바이트를 사용하는지 알려준다. 실행 결과로 4가 나오게 되는데 정수형 변수를 저장하는 데는 4 Byte의 메모리가 할당됨을 확인할 수 있다. 위 사진은 위의 printf 함수를 실행한 결과이다. 이 코드에서처럼 int 자료형 변수를 선언하면 4바이트, 즉 32비트의 메모리 공간이 생깁니다. Tip) 사람이 사용하는 숫자는 0~9까지이며 이를 10진수라고 한다. 하지만 컴퓨터는 0과 1 두 가지 숫자만 사용하며 이를 2진수라고 한다. 컴퓨터는 '전기가 켜졌다' 또는 '전기가 꺼졌다'와 같이 두 가지 상태로 표시할 수 있으며, 다양한 문제를 모두 0과 1로만 표현..
1) 변수를 선언할 때 한 가지의 숫자가 아니라 연산을 중간에 포함시킬 수 있다. 2) %d는 1장에서 언급했듯이 서식 지정자이다. 이때 d는 decimal 즉, 10진수의 약자로 %d는 곧 '10진수로 값을 출력하겠다'는 의미입니다. 10진수는 정수이므로 %d에 해당하는 변수는 반드시 정수형 변수여야만 합니다. 3) 서식 지정자 %d가 나오면 꼭 뒤에 콤마가 오고, 변수나 상수가 오게 된다. %d는 정수 자료형 변수이므로 정수 이외에는 올 수 없다. C언어에서 곱셈 연산자는 x가 아니라 *이다.
1) 정수형 변수 선언인 int에 앞서 const를 넣어주면 더이상 변하지 않는, 즉 고정적인 값인 상수를 선언할 수 있게된다. 이는 정수형 변수뿐 아니라 모든 변수 선언에도 적용된다. 변수는 값을 계속 바꿀 수는 있지만 상수는 값이 변하지 않는다. 2) 위 사진대로 디버깅을 하게 되면, 아래 사진처럼 printf 함수에서 가장 가까이서 선언된 YEAR라는 변수의 값인 2004를 출력하게 된다. 3) 하지만 처음 선언한 정수형 변수 앞에 const를 붙이면 이 값은 상수가 되고, 더이상 변할 수 없는 값이 되어버린다. 그래서 이후에 이 값에 다른 값을 선언해도 변하지 않는다. 그래서 오류가 나온 것을 아래에 가져왔다. 4) 그래서 만약 같은 변수에 동시에 변수를 선언했다면, 위처럼 상수로 선언되지 않은 ..