'코딩공부/C++기초' 카테고리의 글 목록 (4 Page)
본문 바로가기
반응형

코딩공부/C++기초21

객체프로그래밍 1주차 C++(연산자) 4 이번시간에는 연산자에 대해서 알아보려고 합니다. 앞시간에 =이 할당연산자라고 배웠습니다. 그러나 당연히 이 밖에도 여러 연산자가 많습니다. 일반적으로 우리가 연산을 할 때 어떤 연산자를 많이 쓰나요? 덧셈, 뺄셈, 곱셈 이런것을 많이 씁니다. C++에서도 이 같은 연산을 할 수 있습니다. 1. 산술 연산자 곱하기는 *, 더하기는 +, 빼기는 -, 나누기는 /, 나머지 연산은 %입니다. %같은 경우는 자기가 나눈 값에서 나머지 부분을 출력해줍니다. 그리고 C++에서는 1씩 증가하거나 감소하거나, 증가하는 것을 표현할 때 ++ 또는 --로 나타냅니다. 그런데 ++또는 --를 앞에 붙이냐 뒤에 붙이냐에 따라 전위, 후위라고 부릅니다. 그렇다면 두 개의 차이점이 무엇일까 a의 값은 연산이 다 끝난 후에는 전위냐.. 2024. 3. 6.
객체 프로그래밍 C++(포인터를 이용한 배열2) 저번 시간에는 배열을 포인터를 이용해서 설명을 했습니다. https://hanglestocks.tistory.com/64 이번 시간에는 저번 시간에 배운 내용에서 조금 더 추가해서 말해보겠습니다. 정수나 실수 또는 문자만 배열을 사용하여 나타낼 수 있는 것이 아닙니다. 포인터 변수형을 사용하여 배열로 나타낼 수도 있다. 이 때는 배열안에 주소 값들이 저장되게 됩니다. 이 포인터 배열은 문자열을 처리할 때 자주 사용합니다. 문자형 배열과 메모리 사용 효율에서 차이가 나기 때문입니다. 예를 들어 문자형으로 배열을 사용하게 된다면 가장 긴 단어에 맞춰서 배열을 설정해주어야합니다. char Name[3][6]={"jinwoo","minsu"."mandu"} jinwoo가 6글자니까 이런식으로 이차원 배열을 통해.. 2024. 3. 6.
객체 프로그래밍 C++(포인터를 이용한 배열1) 저번시간에는 포인터를 활용해서 스왑함수를 만드는 것까지 했습니다. 이번 시간에는 포인터를 활용해서 배열을 어떻게 나타내는지에 대해서 설명해보려고 합니다. 배열의 각 요소는 주소를 가집니다!! 예를 들어서 int의 경우에는 a[0]과 a[1]은 4바이트씩만큼 차이나게 됩니다. double같은 경우에는 8바이트씩 차이나겠죠. 그리고 배열의 이름은 주소입니다. 예를 들어 Name[5[의 배열을 선언했다고 하자. 그러면 Name은 &Name[0]과 같습니다. 즉 그냥 Name만 쓰게 되면 Name 배열의 시작 주소를 가리키게 되는 것입니다. 위의 그림 1을 보면 제대로 이해되었을 것입니다. 좀 응용해보자면 Name이 주소값이기 때문에 Name을 역참조를 하게 되면 Name[0]의 값이 나오게 됩니다. 그리고 +.. 2024. 3. 6.
객체 프로그래밍 C++(포인터를 활용한 스왑) 이번시간에는 포인터를 활용해서 변수의 값을 서로 바꿔주는 과정을 하려고 합니다. 일반적으로 포인터 없이 스왑을 한다면 temp를 이용해서 스왑을 하게 됩니다. 포인터를 사용하지 않은 코드는 다음과 같이 짤 수 있습니다. 그러나 만약 함수를 사용하게 된다면 문제가 발생합니다. 1주차에 배웠던 지역변수라는 개념 때문에 원하는 대로 스왑이 되지 않게 됩니다. 함수 안의 지역변수인 a, b는 함수 밖에 있는 num1과 num2에 영향을 주지 못하고 메모리를 반환하게 됩니다. 그렇게 되면 스왑을 제대로 할 수 없습니다. 만약 이 때 포인터를 써주게 된다면 이러한 문제를 해결 할 수 있습니다. 이처럼 num1과 num2의 주소값을 스왑함수에 넘겨주고, 역참조를 통해서 스왑스키면 원하는 대로 숫자를 서로 스왑할 수 .. 2024. 3. 6.
반응형