목록C++ (40)
안선생의 개발 블로그
구조체 : 사용자 정의 자료형 구조체 선언방법 1 2 3 4 5 struct MyStruct { int i; float f; }; cs int형에 i변수를 선언한게 아니고 구조체내부에 i라고하는게 int타입에 이름이 되는 것 구조체 접근방법 1 2 3 4 MyStruct st; st.i = 1; st.f = 3.14; cs 내가만든 자료형인 구조체에서 st.i를 이용하면 인트로 접근할 수 있고 반대로 선언에서 f는 float형이니깐 float형으로 접근가능하다. 재정의 하는 방법 1 2 3 4 5 typedef struct MySt { int i; float f; }MYST; cs typedef : 재정의 할때 사용 1 2 typedef int INT; INT i = 0; cs 이런식으로 int자료형에 ..

배열이란? 변수를 10번 선언할려고 해보자 int a = 1 ; int a1 =2 ; . . . int a9 = 10; 이렇게 하나하나 다 선언해주기에는 시간도 오래걸리고 귀찮아진다. 이럴 때 사용하는게 배열이다. 배열에 선언방법은 다음과 같다. int a[10] = {}; // int형의 변수a를 초기값을 0으로 해준것이다. 그러면 배열의 개별요소는 어떻게 접근하나? 내가 만약 5번째 배열에다가 5의 값을 넣고 싶다. 그럴때에는 index로 접근하면된다. a[4] = 10; // 5번째인데 왜 4라고 생각할 수 있는데 여기서는 몇번째에 개념이 아니다 index는 0부터 시작하기 때문에 4가 된다. 만약에 a[10] = 11;를 하면 에러가 난다. 이유는 배열을 10개 만들었는데 a[10]은 11번째에 ..

재귀함수 재귀함수는 함수 안에 자기 자신을 호출하는 것을 말한다. 가독성 , 구현의 용이하다. 그러면 한번 함수 안에 자기 자신을 호출해보자. Factorial 함수에 Factorial를 호출해 보았다. 그런데 오버플로라는게 발생하였다. 그 이유는 함수안에 함수를 계속 호출하여서 스택이 더 이상 쌓을 수 없어서 발생하는 것이다. 오버플로는 재귀함수를 사용할 떄 가장 나타나는 대표적인 오류이다. 그래서 재귀함수를 사용할떄에는 탈출할수 있게 해줘야한다.(if문) 재귀함수를 함수를 사용해보자 Factorial_Re(5)를 불렀습니다. if 문 5 에 안걸려서 5*Factorial_Re(4) 리턴을 할 때 함수가 또 호출이 되었기 때문에 아직 반환이 되지 않고 스택에 머뭄 그 다음에 4*Factorial_Re(..

for() , while() 상황에 따라 사용한다. for()문 for( 반복자 초기화; 반복자 조건 체크 ; 반복자 변경) { //실행할 코드; } 반복자 초기화 : 반복자의 값을 초기화 해준다. 반복자 조건 체크 : 반복자의 값이 거짓이 될 때 까지 계속 실행해준다. 반복자 변경 : 반복자가 계속 같은수면 참이 되 무한으로 되기 때문에 반복자의 값을 변경해줘 거짓이 나오게 해줘 for을 종료되게 해준다. ex) 이 코드는 0~3 까지 시작해 3보다 작을 때 까지 3번 반복해주는 코드이다. a를 1씩 3번 증가 시켜 a의 값이 3인걸 확인해 볼 수 있다. while() 문 while(조건체크) { } 조건체크 : 조건 참이면 계속 실행 거짓이면 while문 종료 ex) i++을 안쓰면 무한로프가 돌 수..

함수 사용법 반환자료형 함수명(데이터형 인수1, 데이터형 인수2 ...) { 함수 본체 } ex) add라는 함수를 만들어보았다. 여기서 함수는 main()함수와 add()두 개의 함수가 있다. 함수는 항상 main()를 먼저 실행시킨다. 또 main()함수가 종료되면 프로그램도 종료된다. C++ 언어는 항상 main()함수를 먼저 실행시킨다. 프로그램 실행 - > main()함수 -> add()함수 실행 -> 리턴값 돌려주고 add()함수 종료 -> mian()함수 종료 ->프로그램 종료 스택 : 스택(Stack)은 "쌓다"라는 의미로, 데이터를 차곡차곡 쌓아 올린 형태의 자료구조 즉 후입 선출, 선입 후출 먼저 쌓인것이 가장 늦게 빠져나간다. 스택을 왜 알아야 하나 C++를 예를 들어보자 main()..
변수 종류 1.지역변수 함수안에 선언되있는것 스택 영역에서 사용된다. 2.전역변수 함수밖에 선언되어있는것 date 영역에서 사용됨 : 프로그램 시작시 생성 , 프로그램 종료시 사라짐 3.정적변수 4.외부변수 메모리 영역 1. 스택 영역 2. 데이터 영역 3. 읽기 전용(코도, Rom) 4. 힙 영역 함수는 기능 함수가 모여서 모듈화 지역변수 출처 : https://www.youtube.com/c/AssortRockGameAcademy 어소트락 게임아카데미 언리얼엔진 4/5, DirectX11/12 자체게임엔진, 게임서버 진정한 게임프로그래머가 되고 싶다면 어소트락 게임아카데미 ASSORTROCK.COM www.youtube.com

1. 쉬프트 연산자 종류 : > 기능 : 비트를 화살표가 가리키는 방향으로 민다. 예) byte의 변숫값은 이렇게 된다. 여기서 이렇게 하면 왼쪽으로 한 칸 가면 이렇게 된다. 왼쪽으로 한번 옮기니 2배가 됐다. 그래서 대입 연산자와 합쳐서 표현하면 이렇게 해주면 byte 안에 있는 값이 두 배 돼서 다시 받는 것이다. 이것을 축약한 것 만약 를 하면 원래 들어있던 값의 4배가 된다. (2²) 3칸 밀면 8배가 된다. (2³) 결론은 일 때 byte의 숫자가 2n 곱한 수이다. 반대로 오른쪽으로 옮기면 나누기 2이다. 결과 적으로 일 때 byte의 숫자가 2² 곱한 수이다. 일 때 byte의 숫자가 2n 나눈 몫이다. 2. 비트 연산자 종류 : 비트 곱 (&)..

조건문이란 값에 따라 처리를 나누고 싶을 때 사용한다. if문 : 참일경우 실행문 실행 거짓일 경우 else 실행 if(조건식) { 실행문 //if가 참인 경우 실행 } else if (조건식) { 실행문 // else if가 참인 경우 실행 } else{ 실행문 // if가 거짓인 경우 실행 } ex) int i = 0; if(i == 0) { i = 1 ; } else { i= 2; } //결과 1 switch 기본형 switch( 판단할 값 ) { case 숫자: //실행내용 break; default: //실행내용 } 그리고 case에 없다면, default 부분을 실행 if/else문에서는 else역할 break; 를 안써주면 아래 코드도 실행시킴!! ex) if문이나 switch문은 상황에 따..

산술 연산자 +,-,*,/,%(모듈러스, 나머지, 피연산자가 모두 정수일때만 가능!!) 대입 연산자 = 실수를 상수로 적을 경우 소수점 뒤에 f를 붙이면 float 자료형으로,f를 붙이지 않으면 double 자료형으로 간주한다. ex 10.f // float ex 10. //double 산술 연산자 활용 int data = 10 + 10; //20 연산자 우선순위는 대입 연산자가 나중에 한다. data + 20; // 산술 연산자를 쓸 때 어디다가 넣을지를 정해줘야한다. ex) data = data + 20; data +=20; // 위에 코드랑 같은 의미 data = 10-2; // 8 data = 10*2; // 20 data = 10%3; // 1 피연사자가 모두 정수일때만 가능 ex)10.0%3...

정수형 : char(1), short(2), int(4), long(4), long long(8) 실수형 : float(4), double(8) 1Byte = 8bit = 2의 8승 = 256가지의 상태를 표현가능 2의 10승 = 1024Byte = 1KByte (B는 byte b는 bit) 1024kByte = 1MByte 양수 0~255까지 양수만 표현하고 싶을 때 ex)unsigned char i = 0; i = 255 // i = -1 i = -1 // i = 255 양수 음수 둘다 표현 -128~127 ex)char i = 0; i = 255; // i = -1 더해서 0이 되게하면됨 1은 0000 0001 이고 0을 만들려면 1111 1111을 더해주면 0이됨 ,정수 2진법에서 다 반전시킨 다..