본문 바로가기

분류 전체보기131

C++ 기초 : const 변수를 선언할 때 'const'라는 키워드를 붙여 해당 변수를 상수화할 수 있습니다. const int형 변수 cint의 값은 100입니다.const가 붙어 있기 때문에 cint의 값은 바꿀 수 없습니다.  아래 코드를 보면cint에 10을 대입하려고 하자, "식이 수정할 수 있는 lvalue여야 합니다."라는오류가 발생합니다. 여기서 lvalue는  int a = 10; 이런 코드가 있을 때 왼쪽은 변수이므로값을 수정할 수 있죠? 이게 바로 lvalue입니다.  반대로 값을 수정할 수 없는,오른쪽에 있는 10은 rvalue입니다. 10 = 11; 위와 같은 코드는 이상하죠?10이 수정할 수 없는 rvalue이기 때문이죠. 비록 cint는 변수이지만.. 2024. 3. 30.
C++ 기초 : 포인터 문제 풀이와 해답 포인터 관련하여 두 가지 문제를 풀어 봅시다. 먼저 첫 번째 문제를 풀어 보죠.  short형 배열 sArr이 선언되었고 각 칸에 1 ~ 10의 숫자가 들어 있습니다. 해당 배열의 주소를 int형 포인터 변수 pI에 강제로 형변환하여 저장합니다. 그림으로 나타내면 위와 같은 상황입니다. 각 칸마다 주솟값의 차이가 2씩 나는 이유는해당 배열이 short형이므로각 칸의 크기는 2Byte이기 때문입니다.  이 상태에서 괄호 안의 내용을 먼저 연산합니다.pI + 2부터 연산해야겠죠? 연산하면 위 그림처럼 됩니다. pI는 int형 포인터 변수이기 때문에 4Byte씩 읽을 것입니다.그래서 pI에 2를 더하면 4Byte + 4Byte = 8Byte만큼 건너가1008.. 2024. 3. 30.
C++ 기초 : 포인터 배열 포인터 변수는 메모리의 주소를 담을 수 있습니다.이러한 포인터 변수의 크기는 어떻게 될까요?int형 포인터 변수는 4Byte, char형 포인터 변수는 1Byte일까요? 그렇지 않습니다. 포인터 변수의 자료형은 해당 주소로 접근하였을 때 그곳에 있는 값을해당 자료형으로 인식하겠다는 의미일 뿐,포인터 변수의 크기는 아닙니다. 포인터 변수의 크기는 가변 길이로플랫폼에 따라 달라집니다. 운영체제에서 32Bit, 64Bit가 의미하는 것은한 번에 처리할 수 있는 데이터 용량이죠?포인터 변수의 크기는 여기에 맞추어서 정해집니다.즉 32Bit에서 포인터 변수의 크기는 4Byte이며64Bit에서 포인터 변수의 크기는 8Byte입니다.  확인해 보도록 하죠. 상단 중간에 .. 2024. 3. 30.
C++ 기초 : 포인터 주소를 저장하는 변수를 포인터 변수라고 합니다. 아래 코드를 보면 int형 포인터 변수 'pInt'을 선언하고 nullptr을 대입했습니다.nullptr은 아무것도 대입하지 않는 것과 같은 의미죠.  이번에는 int형 변수 'i'를 선언하고 100을 대입했습니다. 그리고 포인터 변수 pInt에 &i를 대입했습니다.변수 앞에 &를 붙이면 해당 변수의 주솟값을 나타냅니다.즉 pInt에 변수 i의 주솟값을 넣었다고 볼 수 있습니다.  그럼 여기서 주솟값은 무엇일까요?메모리에는 각 자리마다 어떤 값이 들어있을 겁니다.비어있는 경우도 있겠죠. 그 값에 접근하려면 해당 값이 있는메모리의 주소를 찾아가 접근하는 겁니다. 비어 있는 자리에 값을 넣을 때도 마찬가지로주소를.. 2024. 3. 29.
C++ 기초 : 운영체제 플랫폼이란 무엇일까요? 크게 보면 컴퓨터에서 윈도우,스마트폰의 안드로이드, iOS 등이 있습니다. 더 작은 의미로 보면게임 플랫폼인 스팀, 오리진, 에픽게임즈 등이 있겠죠. 스팀을 통해 구매하고 다운 받은 게임을 오리진을 통해 실행할 수 있을까요? 없습니다. iOS를 기준으로 만들어진 앱을 안드로이드에서 그대로 사용할 수 있을까요? 마찬가지로 안됩니다. 우리가 어떤 프로그램을 만들 때 이러한 플랫폼을 고려해야 합니다.PC에서 구동하는 프로그램을 만든다고 할 때많은 사람이 사용하기를 원한다면윈도우를 기준으로 만드는 것이 유리할 것입니다. PC는 거의 다 윈도우를 기반으로 하기 때문이죠.   비주얼 스튜디오 우측을 보면'솔루션 탐색기'라고 있습니다. 프로그.. 2024. 3. 29.
C++ 기초 : 정적 변수와 외부 변수 어떤 파일에서도 사용할 수 있는 전역 변수를 만드려고 합니다.그러나 각 파일에 전역 변수를 선언하면 링크 과정에서 중복 정의 문제가 발생하고, 한 파일에만 선언해서 사용하자니다른 파일에서 전역 변수를 인식하지 못하는 문제가 발생합니다. 이번에는 정적 변수를 통해 이 문제를 해결해 보죠.정적 변수는 선언된 지역(파일이나 함수)에서만 사용 가능합니다.정적 변수로 선언하려면 앞에 'static'이라는 키워드를 붙입니다.  예시를 봅시다. main 함수가 있는 파일에정적 변수 'global'을 선언하고 0으로 초기화했습니다.이후 global에 1을 대입합니다. 그리고 Add 함수의 정의가 있는 파일에도정적 변수 'global'을 선언하고 0으로 초기화했습니다.이후 global.. 2024. 3. 29.