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

구조체의 주소값을 알아보자.

구조체는 배열과 다르게 연속적인 주소를 가지지 않는다. 구조체 안의 변수를 사용할 뿐 이지 연속될 이유가 없기 때문이다. 그러나, 구조체 안의 배열은 전부 연속된 주소를 가진다. 배열이기 때문이다.


구조체는 지역의 영향을 받는다.

일반 변수와 같이 절대값 선언을 하지 않으면 내부변수처럼 사용이 되어 지역밖을 벗어났을 경우 데이터가 소멸되기 때문이다. 예시는 밑과 같다.

오류가 나타나는것을 확인할 수 있다.


구조체 안에 구조체를 다시 선언해줄 수 있다.

순서는 위부터 아래로 나타나며, 위에서 사용된 구조체를 아래에서

사용해줄 수 있다. 함수와 같은 성질을 가지는데, 밑에서 선언된 구조체를 위에서 선언해서 사용할 수 없다.

사용하기 위해서는 구조체를 위에서 사용하겠다는 선언을 해주어야 한다. 함수를 생각하면 편하다.

오류가 나타나는것을 볼 수 있다.


구조체 안의 구조체를 초기화 시켜줄 수 있다.

구조체 안의 구조체는 이차원배열을 초기화 시켜주는 것 처럼 초기화 시켜줄 수 있다.

위와 같은 방식으로 구조체를 초기화 시켜줄 수 있다.

위에서 써놓았듯, 이차원 배열을 초기화 시켜준다는 생각으로 사용하면 된다.


포인터를 사용해서 구조체에 접근할 수 있다.

구조체를 포인터로 가리켜서 데이터를 접근하고 출력해줄 수 있다. 포인터는 각각 주소값을 가르키게 되며,

각각의 구조체는 주소값으로 인지시켜주어야 한다. 구조체를 생성했을 때 접근구조체가 배열형식으로 n개 이상 일 경우

데이터를 ++ 또는 --연산자 같이 배열형식으로 접근이 가능하다. 예시를 살펴보자.


구조체 안에 포인터 를 선언하여 구조체를 지정하고 그 구조체의 포인터를 사용하고 인지시켜줄 수 있다.

구조체안에 구조체를 가르키는 포인터를 만들고 그 포인터를 외부에서 출력하여. 해당 포인터로 데이터를

바꿔주거나 출력해줄 수 있다. 예시를 보자.

위와같은 예시를 볼 수 있다. weapon이라는 데이터를 선언하고 포인터의 주소값을입력하여 데이터를 바꿔줄 수 있다.


지수와  기수가 있다.

기수는 진법을 나타내는 기본 수 로써 2진법 8진법 10진법 16진법 같은것 을 이야기 한다.

지수는 거듭제곱을 이야기한다. 각각 2^1 2^2 10^2 따위와 같이 수의 승으로 말하는것을 이야기한다.

컴퓨터에서또한 입출력이 쉽게 가능한데 예시를 한번 보자.


코딩을 할 때 헤더파일이 매우 많아지는 경우를 보았을 것 이다.

헤더파일을 따로 만들어서 생성하고 선언해줄 수 있다.

위와 같은 방법으로 .h로 만들어서 헤더를 따로 선언해줄 수 있다.
위와 같이 헤더를 생성할 수 있다.
생성한 헤더는 위와같이 선언하여서 표현해줄 수 있다.

헤더를 위와같이 #include " " 로 묶어서 선언해줄 수 있다.

이렇게 하면헤더를 여러번 생성하지 않아도 한번만 생성해서 만들 수 있다.

728x90

'서울게임아카데미 교육과정 6개월 C++ ~ DirectX2D' 카테고리의 다른 글

14일차 27. Union, 28.enum  (0) 2023.03.29
SGA 지식콘서트  (0) 2023.03.24
12일차 22.Pointer, 23.Structure  (0) 2023.03.23
11일차 doublePointer.  (0) 2023.03.22
10일차 21.pointer2  (0) 2023.03.18