전체 글(112)
-
Ch 04. 연산자 - 03. 논리 연산자
논리 연산자의 경우는 연산자의 우선순위에 대해서 유의하면서 사용해야한다.추가로 단락 평가(short-circuit evaluation)라는 것에 대해서만 이해하고 있으면 될것 같다. && 연산의 단락 평가(short-circuit evaluation)&&연산은 모든 값이 true일때 true이고 하나의 값이라도 false라면 false를 출력한다. 만약 아래와 같은이런 비교 연산을 한다면 이 부분에서는 true가 나오고 이 부분에서는 false가 나온다 이렇게 하면 && 연산자는 좌, 우항의 결과를 모두 확인하고 결과를 출력한다. 그러나 만약 이렇게 좌항이 false로 떨어지는 경우라면 && 연산자는 우항의 연산을 진행하지 않고 바로 false를 반환한다. 이걸 확인하는 방법으로 먼저 printf의 결과..
2025.03.29 -
Ch 04. 연산자 - 02. 비교&관계 연산자
보호되어 있는 글입니다.
2025.03.29 -
Ch 04. 연산자 - 01. 산술 연산자 사용의 주의점
기본적인 내용은 모든 언어에서 비슷하기에 주의 해야할 점과 키워드를 보고 넘어가자. 주의점이런 코드가 있다고 한다면 각 위치별로 결과를 예상했을때 이런 식으로 출력될것을 기대했다.실행시켜보면결과가 예상과 다르게 출력되는 부분이 있다.왜 그럴까? 인터넷에 C++ shell로 검색해서https://cpp.sh/ C++ Shell cpp.sh코드를 복사해온 다음에 여기 삽입해서 실행해보면이 결과는 우리가 예상한 대로 된 것을 볼 수 있다.근데 잘 보면 한 표현식 안에서 같은 변수를 순서없이 여러번 수정했다! 라고 경고를 표출시켜준다.음..? 우리가 따로 순서를 지정해줘야하나..? 라고 생각이 든다. 근데 확인해보면 이 부분 처럼 하나의 변수에 대한 두가지 수정이 동시에 일어난다면 C++에서는 수행의 순서가 정..
2025.03.29 -
Ch 03. 입출력 - 03. cin
cin은 C++에서 표준 입력을 처리하는 객체로, 콘솔로 부터 데이터를 받아오는 역할을 한다.std::istream 클래스의 전역 객체로 C++의 표준 라이브러리인 에 정의되어 있다.cin의 뜻은 Character Input으로 보통 키보드의 입력 값을 받아온다. cout과는 반대로 > 연산자를 사용하고 값을 넣어주는 용도이기에 보통 변수를 이용해서 값을 넣어준다.이렇게 넣어주면 값을 터미널에서 커서가 깜빡거리면서 입력을 요구하고 값을 넣어주면 a에 값이 들어가면서 이렇게 입력한 값을 출력해준다.scanf에서는(C언어에서) & 연산자를 넣어서 해당 변수의 주소값을 직접 전달해줘야만 외부의 변수인 a 값을 scanf함수내에서 넣어줄 수 있기 때문인데 C++에서는 참조라는 것을 사용해서 인자를 전달하면 밖의..
2025.03.29 -
Ch 03. 입출력 - 03. cout
cout은 C++의 표준 입출력 스트림으로, 콘솔에 데이터를 출력할 때 사용하는 도구이다.기본적으로는 prinft보다는 객체지향적이며, 타입 안정성과 확정성이 뛰어난 방식이다.이제 cout에 대해서 살펴 보도록 하자. 1. 타입의 구분 없이 사용이 가능한 cout기존에 printf의 경우는 형식 지정자를 사용해서 어떤 형식인지를 지정하고 그에 맞는 데이터를 전달해줘야만 했었다.그러나 cout의 경우는 어떤 데이터를 전달하냐에 따라서 알아서 그 타입을 확인하고 그 타입에 맞게 값을 출력해준다.이렇게 정수를 입력해도, 문자를 입력해도 따로 설정하지 않더라도 해당 값을 출력해준다.물론 해당 값은 순서대로 정수, 문자열의 형태로 출력이 되었을 것이다. 이렇게가 가능한 이유는 cout은 받는 타입에 대비해서 그 ..
2025.03.26 -
Ch 03. 입출력 - 02. scanf
scanf는 동일하게 cstdio에 존재하기에 cstdio를 우선 import해주자. printf를 생각해보면 아래와 같이 사용했었던걸 기억할것이다.그런데 scanf의 경우는 아래와 같이 사용이 불가능하다.그 이유는 scanf라는 함수 내부에서 값을 외부에 있는 변수에 넣어주기 위해서는 해당 변수의 주소값을 가져가야만 하기 때문이다.그렇기에 사실 사용하기 위해서는 &연산자를 사용해서 주소값을 전달해줘야만 한다.그래야지만 결과에서 사용자의 입력 값을 저장하는 것을 볼 수 있다.추가로 위 처럼 초기화를 하는 경우 형식 문자에 맞지 않은 데이터를 넣으려고 시도한다면 이렇게 scanf를 통해 전달받은 데이터를 넣지 않는다.또한 초기화하 되어 있지 않는 경우는 이렇게 변수가 처음 할당될대 제공 받은 쓰레기값이 변..
2025.03.25