변수
변수명 이름 작성 규칙은 C언어와 동일하다.
포인터의 경우에도 C와 동일하다.
* for, while, if-else, switch 구문도 C와 동일하게 사용된다.
입력
사용자로부터 입력을 받아서 >> 를 통해 user_input에 넣는다.
cin도 cout과 마찬가지로 std에 정의되어 있기 때문에 std::cin과 같이 사용한다.
std::cin >> user_input;
scanf와 다르게 & 연산자를 붙일 필요가 없으며, 변수를 보고 cin이 알아서 처리해준다.
참조자
C++에서는 다른 변수나 상수를 가리키는 방법으로 또 다른 방식을 제공하는데, 이를 바로 참조자 라고 부른다.
#include <iostream>
int main(){
int a=3;
int& another_a=a;
another_a=5;
std::cout << "a:" << a << std::endl;
std:: out << "another_a:" << another_a <<std::endl;
return 0;
}
int형 변수인 a를 정의하고, a의 참조자 another_a를 정의한다.
이 때 참조자를 정하는 방법은 가리키고자 하는 타입 뒤에 & 를 붙이면 된다.
포인터 타입의 참조자를 만드려면 int*& 로 쓰면 된다.
another_a는 a의 또 다른 이름이라고 컴파일러에게 알려주는 것이며, another_a에 어떠한 작업을 수행하든 이는 a에 그 작업을 하는 것이다.
int& another_a; // X
int* a; // O
참조자는 반드시 처음에 어떤 변수의 참조자가 될 것인지 지정해야 하고, 한번 정해지면 다른 변수를 참조할 수 없게 된다.
int a=10;
int& another_a=a; //another_a는 a의 참조자
int b=3;
another_a=b; //a=b;
another_a에 무언가를 하는 것은 a에 무언가를 하는것과 동일하므로, another_a=b는 a=b와 같다.
int x;
int& y=x;
int& z=y;
참조자의 참조자를 선언하는 것은 금지되어 있어서 z와 y 모두 x의 참조자가 된다.
cin이 레퍼런스로 user_input을 받아서 scanf와 같이 user_input 앞에 & 를 붙일 필요가 없다.
'programming > c++' 카테고리의 다른 글
[programmers] 완주하지 못한 선수 (0) | 2023.01.08 |
---|---|
[C++] 객체지향 (0) | 2023.01.08 |
[C++] 힙(heap) (0) | 2023.01.08 |
[C++] 기본 (0) | 2023.01.07 |
[C++] VsCode (0) | 2023.01.07 |