목록Language/C (30)
OneDev

이번 포스팅에서는 C 에서 문자 혹은 숫자를 입력받는 방법에 대해 알아보자. 기본적으로 C에서 무언가를 입력받을 경우에는 scanf 함수를 이용한다. 1. scanf 함수란? scanf 함수는 C 의 표준 입력 함수로, 다양한 데이터를 서식에 맞춰 입력받을 수 있게 해준다. scanf 에 관한 기본적인 정보는 아래와 같다. 헤더 : stdio.h 원형 : scanf("변환문자", &변수명); scanf 함수는 우리가 입력을 하기 전까지 계속 기다리며, 엔터를 눌러야지만 입력으로 처리된다. (예) #include int main(){ int a; scanf("%d", &a); // a 라는 정수형 변수를 입력 받는다 return 0; } 2. scanf 함수 사용법 위에서도 얘기했지만, 기본적인 틀은 아래..

1. 서론 우리는 지금까지 변수를 이용해 여러가지 연산을 수행하는 방법에 대해 학습하였다. 숫자와 연산자만 이용해 모든 연산을 할 수 있다면 참 편하고 좋으련만 애석하게도 C에서는 연산을 할 때 제약이 있다고한다. 그 이유는 변수의 타입 마다 보관할 수 있는 데이터의 크기가 정해져있기 때문이다. 예를 들면 int형 변수는 -2147483648 부터 2147483647 까지의 정수 데이터를 보관할 수 있다. 그렇다면, 보관할 수 있는 크기를 넘어가는 데이터를 변수에 저장하고자 하면 무슨 일이 발생할까? 앞서 int 형 변수가 21447483647 까지의 정수 데이터를 보관할 수 있다 했으므로, 다음과 같이 코드를 작성한 뒤 실행시켜보자. #include int main() { int a = 21474836..

연산자 중의 하나인 비트연산자에 대해 알아보자. 비트연산자는 비트(bit) 하나하나에 대해 연산을 하는 연산자이다. (Recall : 비트 = 컴퓨터에서 숫자의 최소 단위 / 1비트는 0또는 1을 나타냄) 이렇게 설명하면 무슨말인지 잘 와닿지 않을 확률이 높기때문에 일단 비트연산자에 어떤것들이 있는지 살펴보도록 하자. 1. AND 연산(&) AND 연산은 아래와 같은 규칙을 통해 연산되는데, 집합론 초반 명제에 대해 배울때 사용했던 truth table과 유사한 형태를 띄고 있으니 수학을 전공하신 분들이라면 직관적으로 이해하실 수 있을 듯 하다. 연산 결과 1 & 1 1 1 & 0 0 0 & 1 0 0 & 0 0 비트연산은 각 자리를 연산한다. 아래는 예시로 1010 & 0011 의 연산 과정을 나타낸 ..

이번에는 C언어에서 컴퓨터에 어떻게 연산을 명령하는지 알아보자. 이를 위해 산술연산자, 대입연산자, 비트연산자 등등에 대해 학습해볼 계획이다. 이번 포스팅에서는 산술연산자와 대입연산자에 대해서 알아보도록하자. 1. 산술연산자 (Aritmetic Operator) 산술 연산자는 가장 기본적인 연산인 사칙연산에 사용되는 연산자이다. 일상 생활에서 많이 사용하는 더하기, 곱하기, 빼기, 나누기 등이 이에 해당한다. 산술 연산자들은 아래와 같은 것들이 있다. 연산자 연산 + 더하기 - 빼기 * 곱하기 / 나누기 (몫 구하기) % 나머지 구하기 +참고) 나눗셈(/) 연산을 나눗셈에서 몫을 출력하도록 사용할 수 있다. 반환값의 자료형을 정수형으로 지정하면 몫에 해당하는 정수부분만 출력되기 때문이다. #include..

1. 변수란? 컴퓨터는 많은 것을 기억해야 하고, 이는 컴퓨터의 메모리에 전기적 신호를 써 넣음으로써 달성된다. 이해를 돕기 위해 인기게임인 리그오브레전드(이하 롤)을 플레이 하는 경우를 생각해 보자. 게임을 진행하면서, 챔피언의 체력, 공격력, 레벨, 골드, 미니언의 체력, 등등등이 시시각각 변하는 모습을 어렵지 않게 상상할 수 있다. 이렇게 실시간으로 변화하는 모든 것들을 컴퓨터가 기억해야만 우리는 게임을 제대로 즐길 수 있는 것이다. 그렇다면 컴퓨터는 이러한 데이터들을 어떻게 기억할 수 있을까? 바로 컴퓨터의 메모리 램(RAM)에 저장하는 것이다. 보통 램을 표시할 때 위와 같이 표시한다. 각 방에 데이터들이 저장된다고 생각하면 될듯하다. 이 때 컴퓨터는 각 방에 이름을 붙이는데 0번,1번,2번....
▣ 목차 1. 주석이란? 2. 주석 넣는 방법 1. 주석이란 ? 간단한 코드만 작성할 때는 그럴 일이 없겠지만, 프로그램을 만들다 보면 소스 코드가 굉장히 길어지게 된다. 적게는 수백 줄 부터 많게는 수만 줄을 넘기는 것도 예삿일이 아닐것이다. 대표적인 예로 Windows XP의 소스 코드는 대략 4천만줄 이상 된다고 한다. 이런 어마무시한 양의 코드를 작성하다 보면 각 소스 코드들이 무엇을 나타내고, 어떤 일을 하는지 등을 소스코드 내에 나타낼 필요성이 생기게 된다. 즉 컴파일러가 완전히 무시하고 오직 사람의 편의만을 위해 존재하는 것이 바로 "주석"이다. 2. 주석 넣는 방법 C 언어에서 주석은 두 가지 방법으로 넣을 수 있다. (1) /* (들어갈 내용)*/ (2) // (들어갈 내용) (1) 첫 ..

지난 시간 우리는 Hello, World! 라는 문구를 출력하는 C 프로그램을 만들어 보았다. 이번 시간에는 우리가 작성했던 코드를 구체적으로 살펴보도록 하자. #include int main(){ printf("Hello, World!\n"); return 0; } 위의 코드는 우리가 지난 시간에 작성했던 코드이다. 이 코드를 차근차근 살펴보자. (1) #include / 헤더파일 #include 이 코드는 무엇을 뜻하는 걸까? 1) #include #include 는 괄호 안에 있는 파일을 우리 프로그램으로 전부 불러온다는 의미이다. 이때 stdio.h 처럼 끝이 .h로 끝나는파일을 헤더파일이라 하는데, 헤더 파일을 통해 다른 곳에 쓰여져 있는 여러 기능들을 불러올 수 있다.(이에 대해서는 나중에 더..

다음과 같이 코드를 입력해보자. # include int main() { printf("Hello, World!\n"); return 0; } 위 코드가 무엇을 말하는지는 아직 몰라도 된다. 일단 뭔가 있어보이는 것을 내 손으로 쳐본다는 것에 의의를 두자. 참고로 printf 괄호 안에 있는 \는 백슬래시로 일반적인 슬래시랑은 다르다. 백슬래시 \는 경우에 따라 종종 원화(₩)로 표시될 수 있는데 두 개는 같은것이니 신경 안써도 된다. 코드를 입력한 뒤 Ctrl + F5를 눌러보자. 그러면 다음과 같이 검은창에 Hello, World! 가 출력되는 것을 볼 수 있다. 네 축하드립니다 여러분은 C 프로그램을 만들었습니다! 이번 시간에 여러분은 무려 0과 1밖에 모르는 바보 컴퓨터에게 명령을 내리기 위해 비..

지난 포스팅에서, 우리가 작성한 코드를 CPU가 이해할 수 있는 어셈블리로 바꿔주는 프로그램을 컴파일러 라고 한다는 것을 학습하였다. C언어로 프로그래밍을 하기 위해서는 당연하게도 C언어를 이해할 수 있는 컴파일러를 설치하여야 한다. C언어 컴파일러에는 대표적으로 세 가지가 있다. GCC : 주로 리눅스 운영체제에서 사용한다. Clang : 최근 급부상했다고 한다. 구글의 모든 C/C++는 Clang으로 컴파일된다고한다. Visual Studio(MSVC) : 마이크로소프트에서 제작, 배포중인 컴파일러다. 앞선 두 컴파일러는 코드가 모두 공개된 반면에 VS는 코드가 공개되어 있지 않다. 하지만 마이크로소프트에서 만든 만큼 윈도우에서는 잘 돌아간다 우리는 이중에서 Visual Studio 컴파일러를 사용할..

※ 시작에 앞서 : 필자는 수학전공자로, 컴퓨터 관련 전공자도 아니고 프로그래밍 관련 전공자도 아닙니다. 오로지 인터넷에서 수집한 여러 강의들과 설명에 의존해서만 (그것도 혼자) 코딩을 공부하고 있습니다. 따라서 글의 내용중 사실과 다른 부분이 충분히 있을 수 있습니다. 지적은 감사히 받겠습니다. 만약 제가 작성한 글과 다른 분이 작성한 글의 내용이 다르다면, 아마 다른 분이 쓰신게 맞을 가능성이 높습니다. 이점 참고바랍니다. ▣ 목차 1. 컴퓨터란 뭘까? - (1) 누가 명령어를 읽어들일까? - (2) 어디에서 명령어를 읽는가? - (3) 전체적인 데이터의 흐름 2. 명령어는 어떻게 작성할까? - (1) 어셈블리(Assembly) - (2) CPU에서 RAM에 데이터 쓰기 - (3) CPU는 명령어를 ..