더듬이의 헬로월드

Hello, World!

728x90

프로그래밍 언어/C++ [기본] 29

[C++기본] 19.문자

대표적으로 4가지의 메모리영역을 다시 생각해보자 1.스택 영역 2.데이터 영역 3.힙 영역 4.ROM(코드)영역 문자 자료형 char char은 1바이트의 크기를 가지는 정수형 자료형이다. 문자형 자료형인데 왜 정수형으로 표현될까? ASCII CODE 바로 아스키 코드를 이용해 정수와 문자를 매칭 시키기 때문이다. 즉, 정수65는 char형 변수에서는 'A'라는 의미도 갖는 것이다. 컴퓨터에서 문자라는 의미는 지정된 정수와 매칭시켜주어 보여주는 것이라고 할수 있다. 원래는 정수형 변수이지만, 문자형으로 해석하는 순간 사용자에게는 문자 형태로 보여진다. int test1 = 1; //1이 대입된다. char test2 = '1'; //49가 대입된다 문자 '1' 과 숫자 1은 다르다. 문자의 끝 문자가 나..

[C++기본] 18.void 포인터

void Test(){ . . . . . . } 함수에서 리턴을 하지 않는 경우에는 void라는 키워드는 작성한다. void가 포인터와 만나면? void* pvoid=nullptr; 포인터 변수 앞의 자료형은 그 역참조의 단위를 나타낸다. 즉, int포인터라면 역참조시 int형으로 바라볼 것이다. 그럼 void는, 어떤 의미를 가지고 있을까? ⇒주소값을 가지는 포인터 변수이지만, 아직 어떤 방식으로 역참조를 할지는 정해지지 않았다는 뜻이 된다. void* vpointer=nullptr; int a = 0; float b = 0.5f; double c = 0.05; long long d = 50; vpointer = &a; vpointer = &b; vpointer = &c; vpointer = &d; 따..

[C++기본] 17.const와 포인터

포인터 변수는 주소를 가리키는 변수이다. 포인터 변수는 현재 자신이 가지고 있는 주소를 다른 주소로, 혹은 아무것도 가리키지 않도록 바꿀 수도 있고, 아니면 현재 주소가 가리키는 값을 수정할 수도 있다. const와 포인터가 만나면? 포인터 변수가 상수화가 된다면 두가지의 경우를 생각해볼 수 있다. 1.포인터가 가리키는 변수를 상수화 int a; int b; const int* pointer = &a; a = 400;//가능 pointer=&b;//가능 *pointer=500//불가능 cout

[C++기본] 16.const, 상수

변수와 상수 int value=500; const int value = 500; 위의 두 코드는 어떻게 다를까? 위의 value변수는 항상 값이 바뀔 수 있는 변수이지만, 자료형 앞에 const를 붙혀 선언한 변수는 값이 바뀌지 않는 상수로 취급된다. 여기서, 주의해야 할 점이 있다. const을 이용해 선언한 상수는 변수가 상수화 된 것이지, 처음부터 고정된 상수가 아니라는 점이다. const int value=500; value=300; 이는 컴파일러가 자동으로 문법적 오류를 잡아준다. 500=300; 과 같아져 버리기 때문이다. 그럼, const로 상수화된 변수의 값을 바꾸는 것은 정말 불가능 할까? ⇒const상수는 이후의 문법적으로 값을 바꾸지 못하게 막아주는 것이다. 주소로 접근해볼까? con..

[C++기본] 14.운영 체제와 포인터

솔루션, 프로젝트, 코드 비주얼 스튜디오는 솔루션, 솔루션 아래의 프로젝트, 프로젝트 아래의 코드들로 나뉜다. 기본 단위는 프로젝트로 계산한다. 현재 프로젝트의 도움을 주는 다른 프로젝트를 만들수도 있고, 또 다른 프로젝트를 만들 수도 있다. 플랫폼이란? -프로그램이 실행되는 기반, 안드로이드, IOS, Windows등 다양한 기능들이 세트로 모여있는 공간 -Windows 안에서도 실행 환경을 플랫폼이라고 부른다. -또한, 개발을 편하게 하기 위해 만들어진 개발플랫폼이라는 것도 존재한다. ⇒플랫폼은 다양한 기능을 제공하여 실행환경을 동일하게 만들어주는 공간을 의미한다. 32비트, 64비트 솔루션 빌드 비주얼 스튜디오는 어떤 운영체제, 즉 32비트 기반의 플랫폼인지, 64비트 기반의 플랫폼인지를 나누어서 ..

[C++기본] 13.정적 변수와 외부 변수

분할 컴파일과 전역 변수의 문제 모든 작업을 한 cpp 파일에서 작업하지 않는 이상 코드는 분할해서 작업하는 것이 대부분일 것이다. 이럴 경우 저번 포스팅에서 말했듯, 메모리 영역에 쌓이는 전역 변수의 이용에 조금 어려움이 있다. 정적 변수, static 서로 다른 파일에 같은 이름의 전역 변수를 쓰거나, 전역변수가 들어간 헤더를 여러 파일이 include 하게 되면 링크 과정에서 오류가 난다. ⇒이를 방지하기 위해 static 키워드와 함께 선언하는 정적 변수를 사용한다. 1번 파일 #include using namespace std; int DDE; int main(){} 2번파일 #include using namespace std; int DDE; int main(){} ⇒일반적인 전역 변수는 이런..

[C++기본] 10.지역 변수와 전역 변수

변수의 영역과 메모리 역역 변수의 영역 1.지역 변수 2.전역 변수 3.정적 변수 4.외부 변수 메모리 영역 1.스택 영역 2.데이터 영역 3.읽기 전용(코드, ROM) 4.힙 영역 1.지역 변수와 스택 영역 int main(){ int abc; } 함수 내에서 선언되는 변수들을 말한다. 함수 호출시 사용되는 메모리 영역이 스택 영역이므로 함수 안의 지역변수들도 스택 영역에 호출된다 해도 틀린 말은 아니다! 2.전역 변수와 데이터 영역 **#include //1.전역 변수 int data1; int main() { //2.지역 변수 int data2; }** 전역변수는 함수 밖에서 선언되는 변수를 말한다! 전역 변수는 데이터 영역에서 메모리가 할당된다. 최초의 실행 함수, main함수 호출시에 데이터 영..

728x90