구조 와 연합

5100 단어 C 언어
1. 구조 기초 지식:
취 합 데이터 구조: 배열 구조 체 구조 체 값 의 집합 은 구성원 배열 이 아래 표 시 를 통과 하고 구조 체 는 이름 을 통 해 방문 - 차이 가 매우 중요 한 구조 체 와 배열 이 다 르 며 지침 으로 바 꿀 수 없다.구조 체 는 스칼라 에 속 하여 가감 곱 하기 나 누 기 는 할 수 없 지만 값 을 부여 할 수 있다.
1.1 구조 설명:
C 언어 에서 구조 체 가 분배 하 는 메모리 가 연속 이 라 고 규정 하지 않 았 지만 일부 컴 파 일 러 는 구조 체 에 연속 적 인 공간 을 분배 할 것 이다
struct 
{
    int x;
}z;

struct 
{
    int x;
}y;

z = y
//error    struct <unnamed>       struct <unnamed>
struct a
{
    int x;
}f;
//**a       ,      。**
typedef struct b
{
    int x;
}h;
//   typedef   ,     h        ,       。

1.2 구조 구성원
구조 체 에는 여러 종류의 데 이 터 를 포함 할 수 있다.
struct COM
{
    int h;
    char b;
    float c[20];
    double d;
    struct a;
};

1.3 구조 체 구성원 의 직접 방문
COM.h;
(COM.a).a;
//         
(COM.c)[4]
//                 

1.4 구조 체 구성원 의 간접 방문
구조 체 를 가리 키 는 지침 이 있 으 면 화살표 연산 자로 구성원 을 간접 적 으로 방문한다.
struct as
{
    int a;
    char b;
};
struct as *p;
p->a;
p->b;
//OR
(*p).a;
(*p).b;

          

1.5 구조 체 의 자체 인용
struct St
{
    int a;
    int c;
    struct St;
};
//error               
struct St1
{
    int a;
    int c;
    struct St1 *p;
}
//OK.

typedef struct
{
    int a;
    int c;
    struct St1 *p;
} St2;
//error St2         ,         ,              ,      。

1.7 구조 체 의 초기 화
2. 구조 포인터 와 멤버
typedef struct
{
    int a;
    short b;
} EX2;
typedef struct EX
{
    int a;
    char b[3];
    EX2 c;
    struct EX *b;
} EX;
EX x= {10,"Hi",{5,{-1,25}},0};
EX *px = &x;

2.1 액세스 포인터:
다시 한 번 말씀 드 리 지만 C 언어 에 서 는 구조 체 가 분배 하 는 메모리 가 연속 적 인 것 이 라 고 규정 하지 않 았 지만 일부 컴 파일 러 는 구조 체 에 연속 적 인 공간 을 분배 할 것 입 니 다.
px 는 구조 체 의 첫 번 째 요 소 를 가리킨다. *(P + 1) 불법 입 니 다. 원인 은 같 습 니 다.
2.3 액세스 구조 구성원
비교 * p and p - > a;이 두 가지 조작 은 모두 구조 체 를 가리 키 는 첫 번 째 요소 이지 만 약간 다르다. *p 는 전체 구조 체 p - > a 를 가리 키 며 그의 첫 번 째 구성원 을 가리킨다.
int *fp;
fp = p;//error,     


2.4 끼 워 넣 은 구조 에 접근
p - > c. a p - > c 는 구조 체 C 를 가리 키 며 결 과 는 포인터 가 아니 라 변수 입 니 다.그래서 c. a 로 * (p - > c. b) 구조 체 c 의 배열 b 의 첫 번 째 요 소 를 직접 방문 합 니 다.
3. 구조의 저장 형식:
다른 박문 을 참고 하여 총 결 한 것:
구조 체 자체 가 사용자 정의 데이터 형식 이기 때문에 구조 체 변 수 를 정의 하 는 방법 은 일반 변 수 를 정의 하 는 방법 과 같다.메모: 구조 체 생명 체 는 메모리 공간 을 차지 하지 않 습 니 다. 구조 체 형식 으로 구조 체 변 수 를 정의 할 때 만 컴퓨터 가 메모 리 를 할당 합 니 다.구조 체 역시 지침 을 정의 할 수 있 는 구조 체 지침 을 구조 지침 이 라 고 한다.구조 체 는 배열 이 명확 하 게 묘사 할 수 없 는 구 조 를 묘사 할 수 있 고 배열 이 갖 추 지 못 한 기능 적 특성 을 가진다.void print_score (struct a * pn) 의 효율 은 void print 보다 높 아야 합 니 다.score (struct a pn) 의 경우 직접 메모리 작업 으로 인해 스 택 공간 이 구조 변수 공간 수 요 를 피 할 수 있 고 메모 리 를 절약 할 수 있 습 니 다.

좋은 웹페이지 즐겨찾기