글
(1) 구조체
: 각 원소의 타입이 제각각인 배열의 모임.
○ 구조체 정의
: 특정 이름으로 여러개의 변수/배열을 포함한 구조체를 생성.
struct 구조체이름
{ 자료형타입 멤버변수;
};
ex) Group이란 구조체에 music, study 멤버변수 정의
struct Group { int music; int study; } |
○ 구조체변수 선언
: 정의된 구조체를 사용하기 위해 구조체 변수를 선언하여 새로운 메모리를 할당
struct 구조체이름 구조체변수;
ex) Group 구조체를 사용하기 위해 mygroup으로 선언
struct Group mygroup; |
○ 구조체의 멤버변수 참조
: dot 연산자를 사용하여 선언 된 구조체변수의 멤버변수를 직접접근
구조체변수.멤버변수 ( . 연산자를 통해 접근 )
ex) mygroup으로 접근하여 study라는 멤버변수에 50이란 값 쓰기
mygroup.study = 50; |
(2) 구조체포인터
: 선언된 구조체의 주소를 사용하여 멤버변수를 참조.
○ 구조체 포인터변수 선언
: 선언된 구조체를 참조하기위해 포인터 변수 선언
struct 구조체이름 *포인터변수;
ex) Group 구조체를 사용하기 위해 포인터변수 beloved 선언
struct Group *beloved; |
○ 구조체 포인터변수 초기화
: 구조체를 참조하기위해 선언된 포인터 변수를 참조하기위한 구조체변수의 주소로 초기화
구조체 포인터변수 = &구조체변수;
ex) mygroup 구조체를 참조하기위해 포인터변수 beloved를 mygroup의 주소값으로 초기화
beloved = &mygroup; |
○ 구조체의 멤버변수 참조
: -> 연산자를 사용하여 구조체의 주소를 참조 / 멤버변수에 간접접근
포인터변수->멤버변수 ( -> 연산자를 통해 접근 )
ex) beloved 로 접근하여 study라는 멤버변수에 60이란 값 쓰기
beloved->study = 60; |
(3) 구조체와 구조체 포인터 예제 소스
○ Source
- price라는 구조체 변수를 선언하고 '.' 연산자를 통해 멤버변수에 접근하여 값을 저장한다.
- 선언된 price라는 구조체 변수의 주소값을 point함수에 넘겨준다.
- *cost라는 구조체 포인터변수를 선언하고, 넘겨받은 Data(price)로 초기화 한다.
- '->' 연산자를 통해 price 구조체의 주소로 멤버변수에 접근하여 값을 재변경한다.
※ cost->coffee 와 (*cost).coffee 는 같은 표현이다.
=> 구조체변수를 통한 직접 접근과 포인터 변수를 통한 간접 접근이 가능하다.
○ Compile & Result
'P rogramming > C Language' 카테고리의 다른 글
문자와 문자열 입출력 함수 :: get() & put() (0) | 2012.07.01 |
---|---|
싱글 포인터와 더블 포인터의 swap() 함수 구현. (1) | 2012.06.26 |
deprecated conversion from string constant to 'char*' - Compile Error (0) | 2011.11.03 |
access() 함수 (0) | 2011.10.31 |
포인터 배열 과 배열 포인터 (2) | 2011.10.27 |
RECENT COMMENT