목록C++ (208)
응애맘마조
상수는 이름이 있는 상수와 이름이 없는 상수로 나눌 수 있고 int, double 같은 자료형으로 표현이 됩니다. 위의 코드는 덧셈을 하는 코드입니다. 먼저 정수 1과 2가 상수의 형태로 메모리에 저장이 됩니다. 1 + 2 덧셈이 됩니다. 계산의 결과로 얻어진 3이 num 변수에 저장이 되고 출력이 됩니다. 위처럼 1과 2에는 할당된 메모리 공간에 이름이 없습니다. 이렇게 이름 없는 상수를 가리켜 리터럴(Literal) 상수나 리터럴이라고 합니다. 위의 코드에서 변수는 num1, num2, num3, num4 해서 총 4개이고, 상수는 정수형 1, 2, 7이고 실수형, 3.0f, 5.5 해서 2개입니다. 다음은 이름을 지니는 심볼릭 상수로서 const 상수입니다. 변수 선언시 자료형 앞에 쓰면 됩니다. ..
C++에서 auto는 컴파일러가 선언된 변수의 형식을 추론하도록 지시합니다. auto 키워드를 사용하면 초기값에 맞춰서 변수형이 자동으로 결정됩니다. 자동으로 int형으로 변환하여 덧셈을 한 것을 확인할 수 있습니다. 콘솔 창으로도 정상적으로 3이 출력된 것을 확인할 수 있습니다. 하지만 auto는 반드시 초기화를 해야 됩니다. 초기화를 하지 않았을 경우 해당 오류 내용이 출력되면서 실행이 되지 않습니다. 또한 변수형이 다르더라도 컴파일할 때 자동으로 맞추는 것을 확인할 수 있습니다. auto는 자동으로 변수형을 바꿔주기 때문에 편리성이 있지만 원하지 않는 변환형이 될 수도 있기 때문에 의도하지 않은 오류가 발생할 수 있습니다. 그렇기 때문에 atuo는 너무 무분별하게 사용하지 않는 것이 좋습니다. 읽어..
함수의 호출하는 방법에 대해 알아보겠습니다. Call by value는 값을 인자로 전달하는 함수의 호출방식입니다. int temp 변수를 추가해서 임시로 저장하는 공간을 만들고 바꾸는 방식입니다. 그렇게 해서 실행하면 됩니다. 하지만 결과는 달라지지 않았습니다. 그 이유는 Swap 함수 안에 있는 num1, num2와 main 함수 안에 있는 num1, num2가 각각 지역변수라서 가지고 있는 주소값이 달라지지 않았기 때문에 Swap 함수를 호출해도 값이 변하지 않습니다. 그래서 사용하는 방법이 Call by reference입니다. Call by reference는 주소 값을 인자로 전달하는 함수의 호출방식입니다. *을 붙여 주소값으로 넘기는 방식입니다. 정상적으로 바뀐 값을 볼 수 있습니다. 사실 ..
코드를 작성하게 되면 각각 용도와 특성이 드러나게 됩니다. 어떤 부분을 구현할 것인지 어떤 부분을 담당하는지 설정하게 됩니다. 그렇게 되면 파일이 나눠질 수밖에 없는데 파일을 나눠서 컴파일하게 되면 중괄호 안에 있는 부분만 체크하게 되므로 실행시키지 못하고 오류가 나게 됩니다. 그럴 때 사용하게 되는 것이 extern입니다. 임시로 사용할 extern.cpp와 출력을 담당할 Main.cpp를 만들었습니다. extern.cpp에서 변수를 선언하고 Main.cpp에서 extern을 사용해서 num 변수의 값을 가져옵니다. 그렇게 하고 실행을 시키면 extern.cpp에서 저장한 값이 출력됩니다. extern은 외부에 있는 파일을 참조할 때 사용하게 되며 따로 파일의 위치나 경로를 작성할 필요는 없습니다. 또..
static이란 정적 변수를 의미합니다. static으로 선언한 변수는 지역변수와 전역변수 두 가지의 특징을 가지게 됩니다. static 지역변수 num1을 static으로 하고 num2를 지역변수로 선언했습니다. 실행결과 static으로 선언한 num1은 지역변수로 선언되었음에도 불구하고 전역변수처럼 출력이 되었습니다. 이를 통해서 static은 먼저 전역변수의 특징과 같고 0으로 초기화가 되며, 프로그램 시작과 동시에 할당 및 초기화가 되어서 종료될 때까지 남아있습니다. 단, 접근 범위는 Function() 함수 안에서만 가능하고 중괄호를 빠져나가게 되면 소멸합니다. 사용되는 이유는 전역변수는 함수 내 어디든 접근이 가능하지만 static은 전역변수보다 안정적이며 함수 접근 범위를 한 개로 제한하기 ..