C언어와의 차이점을 위주로 알아보자
c++에서 입출력은
cin, cout을 사용한다.
사용법은 아래와 같다.
#include <iostream> //표준 입출력 헤더파일 -> stdio.h
int main(){
int user_input;
std::cout <<"HelloWorld"<< std::endl;
std::cin >> user_input;
std::cout << reference::refer();
return 0;
}
#include > : 표준 입출력 헤더파일을 가져온다.
c언어에서 #include<stio.h>>와 비슷하다.
//std::cout = printf
//std::endl = \n
//std = namespace 이름 공간
namespace는 어떤 정의된 객체에 대해 소속을 지정해주는 것이다.
만일 header1.h 헤더 파일의 내용을 가져다 사용할 떄에는
namespace header1 {
이런 식으로 사용한다.
}
또는
#include "header1.h"
namespace header1{
int func(){
//또는
header1::foo();//header1에 있는 foo를 호출
}
}
따라서 cout, cin 앞에 붙어있는 std::도 마찬가지로 namespace 이며,
붙이기 귀찮으면 코드 처음에
using namespace std;
로 이걸 갖다 쓴다고 선언해주면
뒤에서는 그냥 cout, cin으로 써도 됨
reference = 다른 변수/상수 가리키는 포인터 아닌 방법!!!!
#include <iostream>
int change_val(int *p){
*p = 3;
return 0;
}
int main(){
int number = 5;
int& another_a = number;
another_a = 5;
std::cout << number << std::endl;
std::cout << another_a << std::endl;
change_val(&number);
std::cout << number << std::endl;
std::cout << another_a << std::endl;
return number;
}
참조자는 타입뒤에 &을 붙이면 된다.
int&,
double&,
int*& 이런식으로 사용한다.
단, 레퍼런스는 정의할 때 누구를 가리키는지 명시해야 한다.
int& another_a;
처럼 쓰면 안된다.
-> 포인터는 된다.
-> 투비컨티뉴