C++ local variables, Operators, Definition, Header, Namespace
#include <iostream>
using namespace std;
int main()
{
int x = 0;
{
//위의 변수와 이 변수는 이름은 같더라도 할당된 공간이 다른 다른 변수이다
int x = 1;
}
{
//여기서는 global 변수가 적용이 된다.
x = 3;
}
}
중괄호로 또 묶어 준 것은 또다른 지역을 만들어준다.
중괄호 밖으로 나왔을 때는 지역변수는 더이상 사용할 수 없어진다.
연습 해당 x는 어떤 것이 출력될 것인가?
#include <iostream>
using namespace std;
void doSomething(int x)
{
x = 111;
cout << x << endl; //111
}
int main ()
{
int x = 333;
cout << x << endl; //333
doSomething(x);
cout << x <<endl; //333
return 0;
}
함수를 통해서 global 변수를 바꾸고 싶다면 새로운 변수명을 생성하는 것이 아니라 pointer를 지정해 주소값 자체를 넘겨주면 변수명도 바꿀 수 있을 것이다.
-------------------
리터럴 : Literal
- 대부분의 변수 스트링 등을 이야기 함
피연산자 : operand
- 변수 + 연산 같이 더하는 것 ( cout << x + 2 << endl )
단항 이항 삼항, Unary, Binary, ternary
-------------------
컴퓨터가 컴파일을 하게 되면 코드를 순서대로 읽는다. 그래서 함수를 설정 시 위에 사전에 선언을 해두어야 한다.
forward declaration 함수를 선언할 때 위에 먼저 선언만 하는 부분
definition main 함수 뒤에 선언되는 부분을 나타내준다.
우클릭을 하고 quick definition 혹은 forward declaration 부분으로 넘어가면 쉽게 코드를 편집 할 수 있다.
-------------------
(the name of header file).h 후 파일을 추가해주고
사용하고자 하는 .cpp 파일에 #include "(the name of header file).h"를 넣어주면 정상적으로 헤더파일을 만들 수 있음
지난 학기 c언어도 배우지 않은 상태에서 헤더파일을 만들라는 과제에 굉장히 당황을 했었었다.
-------------------
namespace로 function들의 묶음을 나눌 수도 있고 namespace 안에 namespace를 넣을 수도 있다.
#include <iostream>
namespace Myspace1
{
namespace innerspace
{
int doSomething(int a, int b)
{
return a + b;
}
} // namespace innerspace
} // namespace Myspace1
namespace Myspace2
{
int doSomething(int a, int b)
{
return a * b;
}
} // namespace Myspace2
using namespace std;
int main()
{
cout << Myspace1::innerspace::doSomething(3, 4) << endl;
cout << Myspace2::doSomething(3, 4) << endl;
return 0;
}