khann's IT와 경제 블로그

C++ #1 - 기본 정리

2019. 7. 23. 14:14
반응형

C언어와 C++언어의 특징


 

기본적으로 C++은 C를 Base로 만들었기때문에 C를 포함한다.

 

C언어

C++언어

언어 종류

절차지향

객체지향

프로그램의 시작함수(필수 함수)

Main 함수

기본 단위

함수

함수

연관있는 데이터들의 묶음

구조체

(struct)

클래스/객체

(속성,메소드)

파일 입출력 함수

Printf/scanf

Cout/cin

표준 라이브러리 함수

(기본적으로 제공되는 함수)의 사용

헤더파일 (*.h)

 

C언어와 C++의 Helloworld

 

1
2
3
4
5
6
7
8
#include <stdio.h> //컴파일 시 전처리(preprocessing)
 
int main(void)
{
    printf(“helloworld\n”);
    return 0;
}
 
cs

▲ C 언어의 Helloworld

 

1
2
3
4
5
6
7
8
#include <iosteram> //컴파일 시 전처리(preprocessing)
 
int main(void)
{
    std::cout<<“helloworld”<<std::endl;
    return 0;
}
 
cs

▲ C++ 언어의 Helloworld

 

C언어에서는 standard input output 헤더파일인 stdio.h를 include해주고,

C++에서는 input output stream 헤더파일인 iostream을 '.h'제외하고 include해준다.

또한 C++에서는 std라는 네임스페이스안에 'cout'인 출력함수가 있다.

 

 

 

C++의 변수와 연산자


 

변수는 변경이 가능한 수이다.

데이터를 저장할 수 있는 메모리 공간에 붙여진 이름(메모리 공간 자체)을 의미한다.

 

  종류
정수형 변수 char(1byte), int(4byte), long(4byte)
실수형 변수 float(4byte), double(8byte)

 

증가 감소 연산자( ++또는 --)는 변수 앞에 붙는지, 뒤에 붙는지에 따라 아래와 같은 차이가 존재한다.

 

1
2
3
int val1 = 10;
int val2 = (val1 --+ 2;
 
cs

1번라인과 2번라인이 수행되고나면,

val1은 9가 되고

val2는 12가 된다

 

 

함수


함수는 입력값을 넣으면 출력값이 나오는 상자이다.

 

C/C++에서의 함수는 아래와 같이 생겼다.

C/C++에서 함수의 모습

 

그러면 C++의 문법대로 덧셈기능이 있는 함수를 만들어보겠다.

1
2
3
4
5
6
int Add ( int i, int j)
{
    int result = i + j;
    return result;
}
 
cs

 

이 Add함수를 C++의 main함수에서 사용해보겠다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
 
int Add(int i, int j) //함수의 선언 및 정의
{
    int result = i + j;
    return result;
}
 
int main (void)
{
    std::cout<<Add(1,2)<<std::endl; //함수의 호출
    return 0;
}
 
cs

▲Add함수가 호출되기전에 Add함수를 정의해놓은 모습

주의할점은 Add함수는 11번라인에서 사용하기전에 3번라인에서처럼 미리 상위 라인에 선언 또는 정의되어야한다.

 

컴파일러의 입장에서 이 소스를 읽어보겠다.

컴파일러는 전처리과정을 거친 후 9번라인의 main을 찾아간다

그런다음 main함수의 라인을 한줄씩 실행하면서 내려간다.

11번라인에서 cout의 출력함수안에 Add(1,2)가 존재한다.

컴파일러는 Add함수가 선언되어있는 3번라인으로 찾아가서 Add함수를 실행하고 result값을 return받아 다시 11번라인에서 출력하게된다.

 

이번에는 Add함수를 선언을 먼저하고 정의는 나중에 하는 방법으로 코딩을 진행해보겠다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
int Add(int i, int j) //함수의 선언
 
int main (void)
{
    std::cout<<Add(1,2)<<std::endl; //함수의 호출
    return 0;
}
 
int Add(int i, int j) //함수의 정의
{
    int result = i + j;
    return result;
}
 
cs

▲3번라인에서 Add함수를 선언먼저 해주고 11번라인에서 정의를 한 모습

 

위와 같이 함수의 호출전에 선언을 하는 코딩을하면 컴파일러는 Add함수를 미리 인지하고 있는 상태에서 호출되면 11번라인으로 이동하여 함수를 진행한다.

 

다음 포스트에서는 배열과 포인터 , 클래스와 객체에 대해서 포스트 예정이다.

 

 

피드백은 언제나 환영입니다.

반응형

이 글을 공유합시다

facebook twitter googleplus kakaostory naver