특정 서비스를 사용하는 사용자에 대한 정보를 저장하려고 한다고 가정합니다. 이러한 정보에는 사용자 이름, 이메일, 주소, 서비스 모드 등이 포함될 수 있습니다. 이러한 정보를 저장하기 위해 각 속성을 독립형 변수로 생성할 수 있습니다. 그러나 사용자가 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 프로그래밍 언어의 구조 작업에 대한 기본 사항을 다룹니다.
읽어 주셔서 감사합니다!