목록Language (42)
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. C++의 변수선언은 C와 거의 동일하다 변수를 선언하는 방법부터, 선언시 주의해야 할 사항까지 C++의 방법은 C의 방법을 거의 그대로 물려받았다. 변수의 이름을 정할 때 주의해야 할 점들을 복기해보면 다음과 같다: (1) 숫자로 시작 불가 (2) C++에서 사용중인 키워드는 사용 불가 (예 : return 같은 이름 설정 불가) (3) white space 사용 불가 (스페이스바, 엔터, 탭 등 여백은 변수로 설정 불가) 변수를 선언하는 예를 보자 : #include int main() { int a;--> int형 변수 a 선언 char c;--> char형 변수 c 선언 double d;--> double형 변수 d 선언 float f;--> float형 변수 f 선언 return 0; } 변..
1. 이름공간(namespace)이란? 이름공간(namespace) 란 어떤 정의된 객체에 대해 어디에 소속되어있는지 지정해 주는 것이다. 코드의 길이가 늘어남에 따라 중복된 이름을 가진 함수들이 늘어났고, C++에서는 이들을 구분하기 위해 이름이 같더라도 소속된 이름공간(namespace)가 다르다면 다른 함수인 것으로 취급하게 되었다. 예를 들자면 영국에 사는 찰스와 미국에 다른 찰스가 서로 다른 느낌이다. 아래의 예를 보자. std::cout; 위의 코드는 std 라는 namespace 에 저장되어 있는 cout 을 의미한다. 만약 std 없이 그냥 cout 만 적게된다면 컴파일러는 cout을 찾지못한다. 어디에 소속된 cout인지 알 길이 없기 때문이다. 2. namespace를 정의하는 방법 n..
▣ 목차 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밖에 모르는 바보 컴퓨터에게 명령을 내리기 위해 비..