C++은 C를 포함하기 때문에 C로 작성된 대부분의 프로그램은 C++컴파일러로 컴파일이 가능하지만 C++은 C가 지니지 않은 문법적 특성을 갖고 있다.
C언어를 이용할 땐 확장자가 .c 였지만 C++언어는 .cpp 로 해야 한다.
(그래야 C++ 컴파일러를 이용할 수 있다.)
C
#include <stdio.h> int main(void) { int num = 20; printf("Hello World! \n"); printf("%d", num); scanf("%d", &num); }
C++
#include <iostream> int main(void) { int vall; std::cout<<"Hello World!"<<std::endl; std::cin>>vall; }
#include <iostream>
std, cout, endl를 사용하기 위해 선언한다.
이 선언문을 쓰지 않으면 std, cout, endl을 인식하지 못하는 에러가 난다.
C의 stdio.h와 달리 .h같은 확장자가 없는데, 이는 C++도 .h 확장자를 쓰지만 표준 헤더파일 선언에서는 확장자를 생략하기로 약속되어 있기 때문이다.
std::cout<<'출력대상';
출력대상에는 자료형에 상관없이 무엇이든 올 수 있다.
별도의 출력포맷을 지정하지 않아도 알아서 적절한 출력이 이뤄진다.
문자열은 " ", 문자형은 ' '를 사용해야한다.
둘 이상의 출력대상을 연이어서 출력할 수 있다.
ex. std::cout<<num1<<num2<<num3;
개행 문자 ( \n 과 같은 기능)
std::cin>>'변수';
데이터의 입력도 출력과 마찬가지로 별도의 포맷 지정이 필요없다.
변수의 자료형만 잘 선언해주면 된다.
std::cin>>val1>>val2;
두 입력의 경계는 tab, space bar, Enter키 같은 공백 문자에 의해 나눠진다.
C++의 지역변수 선언은 함수 내 어디든 삽입이 가능하다.
C도 새로운 표준에서는 변수선언 위치에 제한을 두지 않지만, 여전히 많은 컴파일러에서 이를 허용하지 않고 있다.