구조체(Structure)
C에서 가장 큰 데이터 타입.
정수나 실수 또는 문자열 등의 단순한 형태로 나타낼 수 없는 복잡한 데이터를 표현 할 때 사용.
"타입이 다른 변수들의 집합(이종변수 집합)"
=> 관련성 있는 여러정보를 하나의 완성된 정보로 구성.
배열 http://dondon2i.tistory.com/57 | 구조체 |
type 배열명 [크기] [크기]... ;
*배열요소(Element): 배열을 구성하는 각각의 개별 변수들.
|
struct { 멤버(member)목록 } ;
struct 태그명 { 멤버목록 } ;
|
구조체멤버들은 크기가 제각각이므로 배열처럼 단순한 곱셈으로 멤버의 위치를 찾을 수 없음.
따라서. 오프셋을 더해 멤버를 읽음.
오프셋(offset) ; 구조체 시작번지로부터 멤버까지의 거리. 자기보다 앞에 있는 멤버들의 크기의 총합과 같음.
구조체변수 = 멤버들의 집합.
구조체가 선언될 때, 컴파일러는 각 멤버의 오프셋과 타입을 기억.
멤버는 구조체에 소속되어 있을 뿐, 일반 변수와 완전히 같은 자격을 지님.
구조체 멤버의 통용범위 = 구조체 내부로 국한. 구조체 없이 홀로 사용 불가. 멤버를 참조할 때는 반드시 소속 필요.
그래서 멤버를 참조할 때 소속이 다르면 멤버의 이름이 같아도 무관.
배열 참조할 때 http://dondon2i.tistory.com/57 | 구조체의 멤버를 읽을 때 |
|
|
초기값을 준다 = 초기화한다 = 메모리를 채운다.
일반변수 초기화 | 배열 초기화 | 구조체 초기화 |
type 변수명 = 초기화값 ;
|
type 배열명 [크기] = {초기화 값들}; int ar[5]={4,8,3,69,-7};
|
구조체선언_구조체명 = {멤버의초기화값들} ;
|
구조체배열.
구조체를 구성하는 멤버는 타입이 모두 다르지만 배열을 구성하는 요소는 모두 구조체라는 같은 타입이므로 배열이 될 수 있음.
-> //포인터멤버연산자 =화살표연산자(Arrow Operator) = arrow
좌변 우변
구조체포인터 -> 멤버이름 // '~번지의 구조체 멤버~'
(*p).m = p -> m //P가 구조체를 가리키는 포인터이고 m이 멤버일 때,
중첩구조체 = 다른 구조체를 멤버로 포함하는 구조체.
자기 자신을 멤버로 포함할 수는 없지만 자신과 같은 타입의 구조체에 대한 포인터를 멤버로 가지는 것은 가능.
'wEb' 카테고리의 다른 글
네이버키워드광고 신규광고주 교육 후기~!!@ (0) | 2013.01.27 |
---|---|
20130124 (0) | 2013.01.24 |
5I 법칙. (0) | 2013.01.10 |
검색광고마케터 시험일정 및 참고 (0) | 2013.01.08 |
반응형웹.미디어쿼리. (0) | 2013.01.07 |
Scrollbars Through the History (0) | 2012.12.18 |
think pyton; Chapter1_ The Way of the Program (0) | 2012.12.14 |
incremental search ?! 증분 검색이 뭔가~?! (0) | 2012.11.19 |
크롬브라우저 스타일 커스터마이징 (0) | 2012.09.21 |
마크업 markup (0) | 2012.04.29 |