C의 구조

Structures C



C에서 구조체는 단일 엔터티 아래에 변수 컬렉션을 저장하는 데 사용되는 사용자 정의 변수입니다. C에서 구조 구현과 유용성을 설명하기 위해 간단한 비유를 사용합시다.

특정 서비스를 사용하는 사용자에 대한 정보를 저장하려고 한다고 가정합니다. 이러한 정보에는 사용자 이름, 이메일, 주소, 서비스 모드 등이 포함될 수 있습니다. 이러한 정보를 저장하기 위해 각 속성을 독립형 변수로 생성할 수 있습니다. 그러나 사용자가 10명 이상이면 코드가 통제 불능 상태가 되어 읽기가 매우 어렵고 지루해질 수 있습니다.







이를 해결하기 위해 구조를 만들 수 있습니다. 구조 내에서 모든 사용자가 공유하는 모든 속성을 저장한 다음 각 사용자에 대해 고유한 변수를 추가할 수 있습니다.



이를 구현하는 방법을 알아보기 위해 다양한 예를 살펴보겠습니다.



C에서 구조를 정의하는 방법

C에서 구조를 정의하려면 struct 키워드 뒤에 구조 이름을 사용합니다. 이름 뒤에 멤버를 추가하는 한 쌍의 중괄호가 있습니다.





아래 구문을 고려하십시오.

구조체구조체 이름
{
/* 데이터 */
유형 member_name;
유형 member_name2;
유형 member_name3;

...
유형회원_이름N;
};

구조의 이름은 C 프로그래밍 언어의 명명 규칙을 준수하는 한 원하는 무엇이든 될 수 있습니다.



사용자 유추의 예제 구조를 다음과 같이 구현할 수 있습니다.

구조체사용자
{
사용자 이름[스물];
이메일[225];
주소[오십];
정수나이;
부울 등록;
};

구조 변수를 만드는 방법

구조체 변수를 만드는 방법에는 크게 두 가지가 있습니다. 첫 번째는 일반 변수처럼 선언하는 것이고, 다른 하나는 중괄호를 사용하여 설정하는 것입니다.

아래 예제는 구조체 변수를 표준 C 변수로 선언하는 방법을 보여줍니다.

구조체사용자
{
사용자 이름[스물];
이메일[225];
주소[오십];
정수나이;
부울 등록;
};

정수기본(정수인수, 상수 *argv[])
{
구조체사용자 user1,사용자2,사용자3
반품 0;
}

구조체 변수를 생성하는 다른 방법은 다음과 같습니다.

구조체사용자
{
사용자 이름[스물];
이메일[225];
주소[오십];
정수나이;
부울 등록;
}사용자1,사용자2,사용자3;

이 예에서는 구조 선언 중에 생성합니다.

구조체 멤버 초기화

형식에 할당된 메모리가 없으므로 생성하는 동안 구조체 멤버를 초기화할 수 없습니다.

구조체의 멤버를 초기화하려면 아래와 같이 중괄호를 사용합니다.

구조체사용자
{
사용자 이름[스물];
이메일[225];
주소[오십];
정수나이;
부울 등록;
};
정수기본(정수인수, 상수 *argv[])
{
구조체사용자 user1= {'내 사용자 이름', ' [이메일 보호됨] ', 35, 진실}
반품 0;
}

액세스 구조 멤버

구조의 멤버에 액세스하려면 구조 이름, 점 및 멤버 이름으로 시작하는 점 연산자를 사용합니다.

구조체사용자
{
사용자 이름[스물];
이메일[225];
주소[오십];
정수나이;
부울 등록;
};
정수기본(정수인수, 상수 *argv[])
{
구조체사용자 user1= {'내 사용자 이름', ' [이메일 보호됨] ', 35, 진실}
사용자1.이메일 = ' [이메일 보호됨] '
반품 0;
}

이 예에서는 user1의 구성원에 액세스합니다.

형식 정의 키워드

typedef 키워드를 사용하여 데이터 유형에 대한 별칭을 생성하여 코드를 더 읽기 쉽게 만듭니다.

예를 들어:

형식 정의 구조체사용자
{
사용자 이름[스물];
이메일[225];
주소[오십];
정수나이;
부울 등록;
};
정수기본(정수인수, 상수 *argv[])
{
사용자 1= {'내 사용자 이름', ' [이메일 보호됨] ', 35, 진실}
사용자1.등기 = 거짓
반품 0;
}

위의 예에서 사용자 구조에 대한 별칭 u를 만들었습니다. 따라서 매번 struct 사용자를 호출할 필요가 없습니다. 위에서 정의한 대로 u를 사용할 수 있습니다.

구조 포인터

구조체에 대한 포인터를 가질 수도 있습니다. 이렇게 하면 -> 연산자를 사용하여 멤버에 액세스할 수 있습니다.

예를 들어:

형식 정의 구조체사용자
{
사용자 이름[스물];
이메일[225];
주소[오십];
정수나이;
부울 등록;
};
정수기본(정수인수, 상수 *argv[])
{
사용자 1= {'내 사용자 이름', ' [이메일 보호됨] ', 35, 진실}

// 다른 구조체에 대한 포인터
*user_ptr= &사용자1
user_ptr->사용자 이름= '사용자 이름'
반품 0;
}

결론

이 가이드는 C 프로그래밍 언어의 구조 작업에 대한 기본 사항을 다룹니다.

읽어 주셔서 감사합니다!