프로그래밍 공부
작성일
2023. 3. 23. 15:44
작성자
WDmil
728x90

포인터와 포인터배열을 알아보자.

포인터를 선언할 때 배열을 지정하기 위해서는 배열을 지정하고 배열의 열이 어느정도 있는지를 포인터에 알려주어야 한다.

배열 포인터 = 포인터를 배열처럼 사용하겠다.

포인터 배열 = 포인터에 int형을 하나하나 넣어서 배열처럼 만들겠다. 라는것이다.


구조체, Structure에 대해 알아보자.

구조체는, 각각의 같은 데이터가 무수히 많이 필요할 때 전부 타이핑하여 사용할 수 없음으로 다양한 데이터를 한개로 묶어서 여러개 사용할 수 있도록, 하는 것을 이야기 한다. 쉽게 말해서 도장을 파서 그때그때 파서 사용하는거라고 생각하면 편하다.

더 쉽게 이해하자면, 전에 배웠던 함수를 만드는것. 을 변수로 만든다고 생각하면 된다.

위와 같이 편리하게 만들고 사용이 가능하다.

자료형 이라고 생각하면 된다.

자료형을 만들 때 cpp에서는 struct라고 붙이지 않아도 생성이 가능하다. 그러나 c환경에서는 불가능함으로 참고하자.

c환경
cpp환경

위와같이 오류의 유무를 확인할 수 있다.

 

그러나, 사용하고 싶다면 typedef를 사용하여 별칭을 넣어 사용할 수 있다

typedef 사용예시

위와 같이 c환경에서 오류가 나오지 않는것 을 알 수 있다.

익명 구조체를 사용하는 방법 또 한 있다.

익명 구조체는 처음 typedef를 선언할 때 옆에 이름을 선언하지 않고 마지막에만 별칭을 붙여주는 것 을 말한다.

선언과 초기화는 다음과 같이 순서대로 입력하여 사용한다.


메인문에서 기본적으로 초기화 하는 방법을 사용해보자.

임의 구조체 Point 를 선언해서 초기화하여 출력해보자.

이렇게 출력됨 을 알 수 있다. 위와같이 구조체 내부의 변수를 수정하여 출력할 수 있다.


응용해서 두 점 사이의 거리를 구하는 코드를 짜보자, 예시는 밑과 같다.

위와 같은 방법으로 두 점 사이 2차원평면에서의 거리를 구할 수 있다.


이번에는 데이터를 직접 구조체에 for문을 사용하여 입력해보도록 하자.

이렇게 출력이 나오면 성공이다. 입력과 출력, 그리고 데이터유형을 잘 생각해야한다.

각 변수의 데이터 종류를 생각해야한다.

 

728x90