반응형
프로그래머의 관습적인 사용 방법
변수를 대문자로는 쓰지 않습니다. - 매크로에 쓰이기 때문에
그리고 변수는 띄어 쓸 수 없기 때문에 number of apples 같은 변수를 만들려면 _ 를 써서 number_of_apples 이런 식으로 해주면 됩니다.
지역범위
int main()
{
int x(0); // x = 0;
return 0;
}
여기서 x는 0으로 {} 안에 정의되어 있습니다. 이것은 {}를 벗어나면 x는 사라지는 값이 되게 됩니다. 중괄호의 역할은 영역을 분리해주는 것입니다.
#include <iostream>
int main()
{
int x = 0;
int x = 1;
{
int x = 1;
}
{
int x = 2;
}
return 0;
}
이런식으로 int x = 0 후에 int x = 1 이런식으로 초기화해주면 여러 번 초기화했다고 오류가 뜨게 됩니다.
그런데 만약
int main()
{
int x = 0;
{
int x = 1;
}
{
int x = 2;
}
return 0;
}
이 경우에는 오류가 생기지 않습니다. {]를 통해 각각의 x들이 다른 영역에 속해있기 때문입니다. 저기에 쓴 3개의 int x 는 이름만 같은 뿐 전부 다른 각각이라는 것을 아셔야 합니다.
int main()
{
int x = 0;
cout << x << " " << &x << endl;
{
int x = 1;
cout << x << " " << &x << endl;
}
{
int x = 2;
cout << x << " " << &x << endl;
}
return 0;
}
위에 코드를 출력했을 때입니다. 각각의 x의 주소가 다른 것을 볼 수 있습니다. &x는 주소값을 출력해주는 포인터입니다. 여기서 알 수 있듯이 지역변수는 해당 지역을 벗어나면 사용할 수 없는 것이며 각각 다른 x라는 것을 알 수 있습니다.
int main()
{
int x = 0;
cout << x << " " << &x << endl;
{
x = 1;
cout << x << " " << &x << endl;
}
return 0;
}
중괄호 안의 중괄호에 x = 1이라고 새로운 x를 정의하지 않고 x = 1만 해준다면 이 두개는 같은 x로 취급합니다.
반응형
'IT 프로그래밍 > C++' 카테고리의 다른 글
[따배시 2.3~5] C++ 고정 너비 정수, Void, 부동소수점 수 (0) | 2024.03.06 |
---|---|
[따배시 1.12~14] 헤더가드, 네임스페이스, 전처리기 (0) | 2024.03.05 |
[따배시 1.8~2.0] 연산자와의 첫 만남, 기본적인 서식 맞추기, 정의 (0) | 2024.03.05 |
[따배시] 1.5 함수와의 첫 만남 (0) | 2024.03.05 |
[따배시 1.4] 입출력 스트림과의 첫 만남 cin, cout (0) | 2024.03.04 |