반응형
728x90
반응형

기본

  • c언어와의 차이점

먼저, 헤더 파일에 ‘ .h ‘ 를 넣지 않는다. – 2번 라인

프로그래머가 정의하는 헤더 파일의 선언이 아닌, 표준 헤더파일의 선언에 대해서 확장자를 생략한다.

자유로운 지역 변수의 선언 – 9번 라인

c언어에서와 같이 중괄호의 첫 부분에 지역 변수들의 선언만을 모아서 선언하는 것이 아닌 자유롭게 소스 코드 중간 중간에 선언이 가능하며, for문 내의 초기문에 해당하는 영역에서도 선언이 가능하다. 이 때 선언된 변수는 for문이 유효한 기간동안 생성되어 있다가 for문이 종료될 때 소멸된다.

std라는 이름 공간(namespace) 의 새로운 개념 – 11번 라인

std라는 이름 공간이 존재하고 그 공간 속에 여러 라이브러리 및 변수들이 존재함.


새로운 연산자( <<, >> ) printfscanf를 대체하는 coutcin – 11, 12번 라인

std 라는 이름 공간 내에 존재(std::를 이와 같이 해석)하는 coutcin 요소들에 각각 <<>> 연산자를 사용하여 연 이은 출력 및 입력으로 기존 c언어의 printfscanf를 대체한다

다음은 C++에서 C언어의 입 출력 함수를 대체하는 요소들을 정리한 표이다.

endl 연산자 – 16번 라인

마찬가지로 std 이름 공간 속에 존재하는 endl 요소를 출력하여 개행의 효과를 낸다.

위와 같이 문자 배열에 문자열을 입력 받을 때에도 std::cin을 이용하여 입력 받는다. 다음은 그 결과이다.

결과에서 알 수 있듯이 std::cinscanf와 마찬가지로 공백을 기준으로 입력을 구분하기 때문에 첫 공백 전인hello까지만 입력으로 들어간 것을 확인할 수 있다.

728x90
반응형
728x90
반응형

수 표현 방식

  • 컴퓨터의 연산

컴퓨터는 2진수를 기반으로 데이터를 표현하고 연산을 진행한다.

16진수는 2진수를 간단하게 표현할 수 있기 때문에 편의 상 사용함.
이러한 2진수로 데이터를 표현하는데, 데이터 표현에는 단위가 존재함.

 

  • c언어에서의 진수의 표현

각 진수에 해당하는 서식 문자 및 접두어는 다음과 같다

  • 정수와 실수의 표현 방식

먼저, 정수의 표현 방식은 다음과 같다.

정수의 가장 왼쪽에 존재하는 비트는 ‘부호비트(MSB)’.
양수일 때는 부호 비트를 제외하면 일반 2진수 수 표현과 같다. 그러나 음의 정수를 표현할 때에는 2의 보수를 취한다. ( 2의 보수 방법 : 1의 보수 -> +1 )

실수의 표현 방식은 조금 다르다.

위와 같은 식을 정의하여 넓은 범위의 실수를 표현함.
그러나 지수 형태의 식을 이용하여 실수를 표현하는 것이기 때문에 오차가 존재한다. 단적인 예로 me에 적절한 값을 넣어서 0.0을 만들어보면 실감함.

이러한 오차를 ‘부동 소수점 오차’ 라고 한다. 다음은 부동 소수점 오차의 예를 보여주는 예이다.



728x90
반응형

'컴퓨터 언어 정리 > C 언어' 카테고리의 다른 글

06 함수와 변수의 생명주기  (0) 2020.09.10
05 반복과 분기  (0) 2020.09.08
04 상수와 자료형  (0) 2020.09.07
02 변수와 연산자  (0) 2020.09.06
01 C언어의 첫 기본 예제  (0) 2020.09.06
728x90
반응형

연산자와 변수

  • c언어에서의 연산

c언어에서 연산에 사용되는 모든 값은 변수 혹은 상수 등의 형태로 메모리 상에 저장된 후, 연산이 진행됨. (연산이라 함은 단순 사칙연산 뿐만 아니라, 출력, 입력 등도 포함)

위와 같은 예에서 11은 메모리 상에 상수의 형태로 저장된 후, 그 저장된 메모리를 이용하여 연산을 진행
위와 같은 경우에는 값이 고정된 상수이기 때문에 다른 라인에서 값의 변경이 불가능함. -> 변수 개념으로 해결

  • 변수

변수란? 값을 저장할 수 있는 메모리 공간에 붙은 이름, 혹은 메모리 공간 그 자체를 나타낸다.

이러한 변수라는 개념을 이용하여 변수에 값을 저장하고 그 값을 이용하여 연산을 진행한다. 다만, 상수와 다른 점은 변수가 선언된 아래 라인에서 변수가 지는 값을 변경하고, 변경된 값을 토대로 재연산이 가능하다는 점.

먼저, 변수의 선언이다.

자료형 + 변수의 이름

위와 같은 형태로 변수의 선언이 이루어진다. 여기서 자료형에 대한 기재는 내가 생성할 변수에 어떤 타입(Type)의 값이 올 것인지를 컴파일러에게 명시해주는 것이고, 변수의 이름에 대한 기재는 말 그대로 메모리 공간에 붙여줄 이름을 명시해주는 것이다.

자료형의 종류와 변수의 이름을 지을 때의 명명 규칙에 대해 아래에 기재

<자료형>

<명명 규칙>

다음은 변수의 선언 및 초기화이다.

6번 줄부터 9번 줄까지 총 5개의 변수가 선언되었는데, 각각 여러 문법적인 요소를 지닌다. line 7에서는 정수형 자료형으로 변수를 선언하였고, 선언함과 동시에 2라는 값을 대입 연산자(=, 대입)를 통하여 초기화를 시켜주었다. 이를 ‘선언과 동시에 초기화 한다’ 라고 표현한다. 그리고 line 8에서는 선언과 동시에 초기화를 하되, 콤마 연산자( , )를 통하여 정수형 변수 num3num4를 한번에 선언하고 동시에 초기화를 진행한다. 또한 line 6에서는 num1을 선언만 하고 초기화는 행하지 않았으나 line 11에서 첫 대입이므로 초기화가 이루어졌고, 그 이후 line 12에서 일반 대입이 이루어졌다. 그리고 마지막 line 9에서는 선언만 진행하고 초기화가 이루어지지 않았는데 이런 경우에는 num4의 메모리 공간에는 쓰레기 값이 자동으로 채워진다. 사실 채워지는 것이 아니라 해당 메모리 공간에 원래 존재하고 있던 어떤 값이 보여지는 것이다.

변수 선언 시 주의 사항 : 중괄호 내에 변수를 선언할 경우에는 중괄호의 앞부분에 변수의 선언을 위치시킨다.

  • 연산자

  • 키보드로부터 값을 입력 받기

프로그램이 번역된 후 실행하는 중에 값을 변수에 저장할 수 있는 방법.

scanf 함수에서 첫 번째 인자, 큰 따옴표 사이의 Format으로 입력을 받는데, 나타낸 서식 문자 순서대로 이후 인자들에 차례로 값이 저장된다. %c, %d, %f, %lf 는 변수 명 앞에 &를 붙인다. 포인터와 관련된 이야기.

scanf 함수는 스페이스, 엔터 등의 공백으로 입력과 입력을 구분 지으며, 첫 번째 인자로 주어진 형식으로 입력을 받는다. 형식을 지키며 입력하라는 말이다.

728x90
반응형

'컴퓨터 언어 정리 > C 언어' 카테고리의 다른 글

06 함수와 변수의 생명주기  (0) 2020.09.10
05 반복과 분기  (0) 2020.09.08
04 상수와 자료형  (0) 2020.09.07
03 수의 표현 방식  (0) 2020.09.06
01 C언어의 첫 기본 예제  (0) 2020.09.06
728x90
반응형

기본

  • Hello, C-World 프로그램

2번 라인에서 “stdio.h” 라고 하는 Header File을 포함시키는 역할을 하는데, stdio.h 파일 안에는 표준 입출력 라이브러리 함수들이 정의 및 선언이 되어 있다.

4번 라인의 경우 main 함수이다. C언어로 만들어진 프로그램이 실행될 때에는 운영체제가 제일 먼저 main 함수를 호출하고, main 함수의 내용이 실행되면서 프로그램이 구동된다.

함수는 다음과 같은 구조를 갖는다.

< 함수의 정의와 개략적인 함수 >

입력 타입에는 함수가 입력 값으로 인자를 받는 매개 변수들을 나열할 수 있고, 출력 타입에는 return 다음에 올 수 있는 반환 값의 타입을 기재한다.

6번 라인의 경우 stdio.h 헤더 파일 안에 정의 및 선언되어 있는 printf 함수를 이용하여 큰 따옴표로 둘러 쌓인 문자열을 출력한다. C언어에서는 큰 따옴표로 둘러 쌓인 것을 문자열, 작은 따옴표로 둘러 쌓인 것은 문자를 나타낸다.

8번 라인에서 출력 타입에 맞는 반환 값을 반환한다. Main 함수에서 값을 반환하는 이유는 함수를 호출한 운영체제에게 함수가 정상적으로 종료됐음을 알리기 위해서 0 값을 반환한다. 일반 함수의 경우에는 마찬가지로 정상 종료 및 값의 전달을 위해서 반환 값을 지정한다.

 

728x90
반응형

'컴퓨터 언어 정리 > C 언어' 카테고리의 다른 글

06 함수와 변수의 생명주기  (0) 2020.09.10
05 반복과 분기  (0) 2020.09.08
04 상수와 자료형  (0) 2020.09.07
03 수의 표현 방식  (0) 2020.09.06
02 변수와 연산자  (0) 2020.09.06

+ Recent posts