> 백엔드 개발 > C++ > C 구조체 멤버를 올바르게 초기화하려면 어떻게 해야 합니까?

C 구조체 멤버를 올바르게 초기화하려면 어떻게 해야 합니까?

Barbara Streisand
풀어 주다: 2024-12-18 11:22:10
원래의
719명이 탐색했습니다.

How Do I Properly Initialize C   Struct Members?

C 구조체 멤버 초기화

C에서 구조체 멤버는 구조체 없이 선언될 때 자동으로 0이나 특정 값으로 초기화되지 않습니다. 초기화 목록. 이는 초기화되지 않은 구조체 멤버의 값이 불확실하다는 것을 의미합니다. 멤버가 원하는 값으로 초기화되도록 하려면 멤버를 명시적으로 초기화해야 합니다.

초기화 방법

구조체 멤버를 초기화하는 방법에는 여러 가지가 있습니다.

  1. 초기화 목록: 구조체에서 초기화 목록 사용 선언은 멤버를 초기화하는 가장 간단한 방법입니다. 예:
struct Snapshot {
    double x = 0;
    int y = 0;
};
로그인 후 복사
  1. 기본 초기화: 기본 초기화 구문({})은 모든 멤버를 기본값으로 초기화합니다. 기본 유형(예: double 및 int)의 경우 이는 0입니다.
Snapshot s = {};
로그인 후 복사
  1. 값 초기화: 빈 초기화 프로그램으로 구조체를 초기화하는 경우 목록(예: {}), 값 초기화가 발생합니다. 이는 각 멤버를 기본값으로 초기화하거나 멤버가 사용자 정의 유형인 경우 기본 생성자를 호출합니다.
  2. 초기화 목록이 있는 생성자: 구조체에 생성자가 있는 경우 다음을 사용할 수 있습니다. 초기화를 위한 생성자 내의 초기화 목록 member.
struct Snapshot {
    int x;
    double y;
    Snapshot(): x(0), y(0) { }
};
로그인 후 복사
  1. 할당 연산자: 할당 연산자(=)를 사용하여 구조체 멤버에 값을 할당할 수도 있습니다.
Snapshot s;
s.x = 0;
s.y = 0;
로그인 후 복사

구조물에 사용자 선언 생성자가 있는 경우 집계 초기화 목록을 사용할 수 없다는 점에 유의하는 것이 중요합니다. (예: {}). 이러한 경우 생성자에서 명시적인 초기화를 수행해야 합니다.

위 내용은 C 구조체 멤버를 올바르게 초기화하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿