본문 바로가기

c++14

[C++] 변수 변수 지역 변수 : 괄호 안에 선언되어 있는 변수들 (함수 안쪽에서 선언된 변수들) 전역 변수 : 괄호 외부에 선언된 변수들 정적 변수 외부 변수 지역과 전역을 나누는 기준은 "함수"이다. 함수(function) - 기능의 모듈화 : 작은 기능부터 기능화를 잘 시켜놓으면 점점 더 큰 기능이 만들어진다. - 기능을 잘 구별하고 쪼개야한다! - 기능을 잘 쪼개서 함수로 만들어 놓고 나중에 필요할 때마다 호출해서 쓰는 식으로 가는 것이 바람직하다. //return 타입이 int라고 알려줌 //반환타입 int Add(int left, int right){ //left와 right는 지역변수 return left + right; } data = Add(10,20); 지역변수 안에 지역변수 존재 가능!! 서울시 안.. 2023. 2. 22.
[C++] 비트 연산자 비트 연산자 - 비트 단위로 연산이 진행될 때 사용하는 연산자 - 비트 쉬프트(bit shift) : > 화살표가 가리키는 방향으로 민다. 비트를 왼쪽, 오른쪽으로 민다!! ex) unsigned char byte = 1; byte 많이 쉬었음 -> 피곤한 상태 0으로 피곤한 상태 제거하고 싶다면? 특정 자리 비트 제거 xor 연산을 사용하지 않음 → 문제가 있다 //특정 자리 비트 제거 iStauts &= ~THIRSTY; 현재 캐릭터 상태 ... ... 1 1 1 0 1 0 1 0 위에 형광표 친 부분의 상태(목마름1 -> 목마름0) 뺄거임 -THIRSTY 준비 ... ... 0 0 0 0 0 0 1 0 - 비트 곱을 진행하기 전에 내가 원하는 상태(THIRSTY)를 반전시킨다. ... ... 1 1.. 2023. 2. 22.
[C++] 조건문 if/else 구문 if() { ... } ( ) 안이 참일때 { } 이 실행된다. int data = 0; if( 100 && 200) { data = 100; } 100 && 200이 참이므로 { } 이 실행된다. 따라서 data는 100이 된다. 즉 if 문을 실행하면 data는 100이 되고, 실행하지 않은 상태에서 data는 0이다. ※ if else문은 사용자의 행동에 따라 수행 결과가 가변적일 때 주로 사용한다. (사용자의 반응에 맞춤) if else if() { //참일 경우 }else { //거짓일 경우 } ( ) 가 참일 경우 if문이 실행되고 참이 아닐 경우 else문이 실행된다. if .. else if .. else if... else if () { ... }else if( ){ .. 2023. 1. 6.
6. 증감 연산자 증감 연산자(increment and decrement operator) - 피연산자가 1개뿐이다.(단항 연산자) - 피연산자를 1씩 증가 혹은 감소시킨다. ● ++ ● -- 한단계 증가/감소한다 라는 의미로 기억해두는 것이 좋다! "한단계"라는 의미가 모두에게 같은 의미가 아니기 때문이다. 정수나 실수(기본 숫자 타입) 에서는 1씩 증가 혹은 감소를 의미하겠지만, 포인터에서는 그런 의미가 아니기 때문이다. int data = 0; ++data; //전위(전치) data++; //후위(후치) ++data는 전위 증가 연산자로 연산을 진행한 것이고, data++은 후위 증가 연산자로 연산을 진행한 것이다. ● 후위 연산자 : 모든 연산자의 순서를 통틀어서 가장 나중에 수행된다. (대입 연산자 보다도 늦는다.. 2023. 1. 6.
5. 산술 연산자 ● 연산자(operator) ● 대입 연산자 ( = ) ● 산술 연산자 ( + , -, * , / , % , ++ , -- ) % : 모둘러스, 나머지 연산자 (피연산자가 모두 정수, 실수는 나머지가 없으니까) 실수는 나머지가 없이 소수점이 계속 나오므로 실수끼리 나누면 문법 오류가 발생한다. (나머지 연산할 때 실수가 하나라도 있느면 오류 발생함) int data = 10./3.; data가 정수이므로 3이 나오긴 하나, 데이터 손실 우려 경고 문자가 나온다. int data = (int)10./3.; 명시적으로 형변환 해주자. 또한, ● 실수를 상수로 적을 경우 소수점 뒤에 f를 붙이면 float 자료형으로, f를 붙이지 않으면 double 자료형으로 간주한다. 0.1f - float 자료형 0.1 .. 2023. 1. 4.
4. 실수형 자료형 정수형 자료형과 실수형 자료형을 처리하는 데이터 방식은 완전 다르다. ● 정수형 데이터 표현 방식 : 비트, 한정적인 공간 안에서 2진수로 표현 (표현할 수 있는 경우의 수가 한정적, 숫자의 표현 범위↓) ● 실수형 데이터 표현 방식 : 비트값을 고정하기 어려울 수 있고, 모두 배치시키기 어렵다. → "복동 소수점 방식" 이용 즉 메모리를 다루는 방식 자체가 다르다. (3과 3.0은 완전 다름) int a = 3 + 3.0; 정수 방식 vs 실수 방식 결정해야함. 그러나 a가 정수이기때문에 3.0을 형변환 한다. 따라서 명시적으로 적어주는 것이 좋고, 실수와 정수를 혼용에서 쓰는 경우는 의도한 것이 아니라면 피하자. int a = 3 + (int)3.0; float vs double float는 4byt.. 2023. 1. 4.