'포인터' 태그의 글 목록
본문 바로가기
반응형

포인터4

객체 프로그래밍 C++(포인터를 이용한 배열2) 저번 시간에는 배열을 포인터를 이용해서 설명을 했습니다. https://hanglestocks.tistory.com/64 이번 시간에는 저번 시간에 배운 내용에서 조금 더 추가해서 말해보겠습니다. 정수나 실수 또는 문자만 배열을 사용하여 나타낼 수 있는 것이 아닙니다. 포인터 변수형을 사용하여 배열로 나타낼 수도 있다. 이 때는 배열안에 주소 값들이 저장되게 됩니다. 이 포인터 배열은 문자열을 처리할 때 자주 사용합니다. 문자형 배열과 메모리 사용 효율에서 차이가 나기 때문입니다. 예를 들어 문자형으로 배열을 사용하게 된다면 가장 긴 단어에 맞춰서 배열을 설정해주어야합니다. char Name[3][6]={"jinwoo","minsu"."mandu"} jinwoo가 6글자니까 이런식으로 이차원 배열을 통해.. 2024. 3. 6.
객체 프로그래밍 C++(포인터를 활용한 스왑) 이번시간에는 포인터를 활용해서 변수의 값을 서로 바꿔주는 과정을 하려고 합니다. 일반적으로 포인터 없이 스왑을 한다면 temp를 이용해서 스왑을 하게 됩니다. 포인터를 사용하지 않은 코드는 다음과 같이 짤 수 있습니다. 그러나 만약 함수를 사용하게 된다면 문제가 발생합니다. 1주차에 배웠던 지역변수라는 개념 때문에 원하는 대로 스왑이 되지 않게 됩니다. 함수 안의 지역변수인 a, b는 함수 밖에 있는 num1과 num2에 영향을 주지 못하고 메모리를 반환하게 됩니다. 그렇게 되면 스왑을 제대로 할 수 없습니다. 만약 이 때 포인터를 써주게 된다면 이러한 문제를 해결 할 수 있습니다. 이처럼 num1과 num2의 주소값을 스왑함수에 넘겨주고, 역참조를 통해서 스왑스키면 원하는 대로 숫자를 서로 스왑할 수 .. 2024. 3. 6.
객체 프로그래밍 C++ (포인터 변수, 이중 포인터 변수) 저번 시간에 포인터에 대한 개념을 설명했습니다. 이번 시간에는 메모리 주소를 저장하는 변수인 포인터 변수에 대해서 알아 보겠습니다. 포인터 변수는 int* num 이런 식으로 나타냅니다. 이는 저장한 주소에 해당하는 메모리를 나타내게 됩니다. 만약 포인터 변수를 사용하지 않고, 그냥 int형을 사용하게 되면 빨간줄로 에러가 표시되게 됩니다. 그래서 포인터 변수가 필요한 것입니다. 그림 2를 보시면 &num1과 num2의 값이 같습니다. 즉 num2에 num1의 주소가 저장되어 있는 것입니다. 그렇다면 num1의 값을 바꾸게 된다면 주소가 바뀔까요? 아닙니다. 그림 3를 보아 알 수 있듯이 다른 값을 할당한다고 해서 주소가 바뀌지 않습니다. 메모리 주소를 num2가 나타내고 있고, 그 메모리가 저장한 값만.. 2024. 3. 6.
객체 프로그래밍 C++(포인터 개념) 이번시간에는 포인터의 개념에 대해서 알아보려고 합니다. 컴퓨터의 메모리에도 메모리 주소가 있는데 그 주소를 저장하는 변수가 포인터입니다. 기본적으로 변수를 만들게 되면 임의의 메모리 주소를 가진 변수를 저장한다. 포인터는 &(주소 연산자)로 AND 연산자와 모양이 같지만 역할이 다릅니다. 예를 들어 변수 NAME의 주소를 나타내고자 한다면 &NAND로 나타낼 수 있습니다. 사진 1의 코드를 실행시켜보면 a에 할당시켜줄 값을 받고 그것을 출력하는 것을 알 수 있습니다. 그런데 &(주소 연산자)를 이용하니 이상한 숫자와 문자들이 나열되어 있는 것을 알 수 있습니다. 이것이 name이 저장된 메모리 주소입니다. 그렇다면 내가 입력하는 값이 아니라 변수 선언과 동시에 초기화를 했다면 다시 실행시켜도 같은 메모리.. 2024. 3. 6.
반응형