전체 글(112)
-
Ch06. 복합데이터 - 01. 배열(Array)
C++에서 배열(array)은 같은 자료형의 값들을 연속된 메모리 공간에 저장하는 자료 구조로 정적(static)으로 메모리가 할당되기 때문에, 크기가 고정되고 컴파일 타임에 결정되는 배열을 가장 기본적으로 사용한다. 1. 기본 배열의 선언 및 초기화배열의 선언배열의 기본 선언의 형태는 타입 변수명[배열의크기];와 같이 선언한다.int arr [10]; 이때 배열의 크기는 상수로만 올 수 있고 변수를 넣어서 선언은 불가능하다.만약 이렇게 변수를 넣어서 사이즈를 넣기 위해서는 변수를 상수로 전환시켜야만 한다.또 다른 방법으로는 메크로를 사용해서 넣어주는 방법도 있다. 보통 메크로를 사용하는 방법보다는 const로 상수로써 size를 전달하는 방식이 조금 더 많이 사용된다. 배열의 초기화배열의 경우 초기화가..
2025.04.01 -
Ch05. 흐름제어 - 03. for 문 (자바와 C++이 다른점, 유의점)
이전에 말했다 싶이 for문의 조건절 부분에 초기화문을 넣어주는 것도 가능하다보통은 이렇게 조건 부가 중앙에 위치하는데 여기서 사용자의 입력이 정상적으로 받아질때는 내부에 코드를 돌고 비정상적인 입력이 들어오면 for문을 나가도록 하게 하는 코드를 해보자면이렇게 만들면 이렇게 정상적인 입력을 했을때는 정상적으로 들어오는데 이렇게 문자 두개를 입력해서 비정상적인 값이 나오면 0으로 나오면서 false가 떨어지며 종료되게 된다. 이런 사용방법은 사실 의미는 없을 지 모르지만 이런 사용방식도 가능하다는 부분을 알고 있자. 추가로 이 for 문에 대해서 공부하는 방법으로는 피보나치 수열 만들어보기 등의 연습을 해보는게 좋을 것 같다 피보나치 수열의 경우는 아래의 조건을 만족하는 값을 출력시키면 된다. // 0..
2025.04.01 -
Ch05. 흐름제어 - 02. switch 문 (자바와 C++이 다른점, 유의점)
switch문에서 자바와 다른점은 switch 문의 () 안에 들어가는 값이 정수형이여야만 한다는 것이다.자바의 경우는 문자열 같은 것이 들어가도 사용이 가능한데 반면 C++에서는 정수형이 아니면 사용이 불가능하다.이렇게 결과를 내는데 반면 이렇게 문자열을 넣는 순간 아예 문법적 에러로 확인한다그렇기 때문에 switch에는 정수로서 인식할 수 있는 타입을 넣어줘야만 한다. # 추가적으로 모든 언어의 switch문의 경우는 동일하겠지만 switch문의 경우 조건에 맞는 case문을 만나면 그 시점부터 break를 만나기 전까지 모든 문장을 실행시킨다.그래서 이렇게 코드를 작성했다면 조건이 맞는 case 'a' 이후부터는 조건을 바라보지 않고 그냥 다 실행시킨다.그래서 보면 이렇게 만들었다면 case 'a'..
2025.03.30 -
Ch05. 흐름제어 - 01. if 문 (자바와 c++이 다른점, 유의점)
c++에서 조금 특이한 부분에 대해서 확인해보자면 C++에서는 조건부 초기화 문법이란게 있는데 이게 뭐냐면 if (~) 안에는 원칙적으로 표현식(expression)이 와야 하지만 예외적으로 if (int num = 1) 처럼 변수 선언과 초기화가 가능하게 해둔 것을 말한다. 그래서 이런 방식의 사용이 가능하다보면 int num = 1 의 결과로 num 자체를 반환하면서 if 의 조건문이 1을 만나면서 true로 내부의 statement를 실행시켜주는 것을 볼 수 있다.그리고 저 num의 경우는 if 문 내부에서만 사용이 가능한 변수로써 사용이 되어 외부에서 num을 접근하려고 한다면이렇게 변수가 선언되지 않았다고 알린다. 추가로 c++ 17 이후 부터는 if (init-statement; 조건식) {..
2025.03.30 -
Ch04. 연산자 - 05. 기타 연산자
지금까지 확인한 연산자 말고 자주 사용하는 연산자에 대해서 확인해보자.일단 자바와 다른 점이 있는 연산자에 대해서만 확인해보려고 한다. 1. 삼항 연산자 - 조건문 ? true 코드 : false 코드사실 삼항 연산자의 사용은 자바나 c++이나 동일한듯 보인다.조건문 ? true일때 실행할 코드 : false일때 실행할 코드이렇게 되는데 이걸 사용할때의 주의점이라고 해야할까 만약 cout을 사용해서 이 결과를 출력한다고 한다면std::cout 와 같이 사용하면서 3항 연산의 결과를 출력할 수 있게 되는데 이런 방식 말고도 조건문 ? (std::cout 와 같이도 사용할 수 있다. 그리고 여기서 추가로 유의 해야할 점은 std::cout 이 방식을 사용한다면 true일때 실행할 코드와 false일때 실행할..
2025.03.30 -
Ch04. 연산자 - 04. 비트 연산자
웹 개발을 하면서 사실 비트연산자를 실무에서 사용하는 경우는 아예 없었다.그런데 요즘 보면 개발 되어 있는 코드에서(물론 비트 연산자가 사용되어 있는지 판단 자체도 못하겠슴 c++로 되어 있는건....아직 숲을 보는 능력은 없어서..) 남이 작성되어 있는 코드를 읽기 위해서는 배워야 할 필요성이 있다고 느낀다.특히 C++이나 C같이 메모리를 직접 조작해서 효율을 높여야만 하는 영역에서는 또 필요한건 맞다고 생각한다. 몇번 배웠는지 모르겠지만 매번 메모리에 대한 개념이 추가되면 머리에서 거부하는 이런 정보들에 대해서 각인이 되어야 한다는 생각에 배웠지만 모르는 것이 대해서 다시 각인시키도록 하자. 우선 C++에서 비트연산자를 왜 봐야만 하는가를 고민해보면 아래와 같은 이유들이 존재할것 같다. 라이브러리나..
2025.03.29