C에서 구조체 멤버의 값 초기화
다음 구조체를 고려하세요.
struct Snapshot { double x; int y; };
구조체가 선언된 경우 초기화하지 않고 해당 멤버가 자동으로 다음으로 설정됩니까? 0?
답변:
아니요, 멤버는 자동으로 0으로 초기화되지 않습니다. 0으로 설정하려면 명시적인 초기화가 필요합니다.
Snapshot s = {0,0};
기타 초기화 옵션:
Snapshot s = {}; // All members set to 0
struct Snapshot { int x = 0; double y = 0.0; }; Snapshot s; // x = 0, y = 0.0
struct Snapshot { Snapshot(int x, double y) : x(x), y(y) { } }; Snapshot s(0, 0.0); // x = 0, y = 0.0
참고: 생성자 초기화는 다음과 같은 경우 불가능합니다. 구조체 선언에 존재하는 집계 이니셜라이저 목록입니다.
위 내용은 C 구조체 멤버는 자동으로 0으로 초기화됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!