인프런 커뮤니티 질문&답변

Jii님의 프로필 이미지
Jii

작성한 질문수

(2025) 일주일만에 합격하는 정보처리기사 실기

구조체

구조체 기본 형태

해결된 질문

작성

·

71

·

수정됨

0

안녕하세요!

2분 쯤에 구조체 선언하는 2가지 형태에 대해서 비교해 주실때

오른쪽에서 구조체 선언할때 (왼쪽과는 달리)그냥 struct 라고만 되어있는데

struct Person {//내용}person1 ; 이렇게

Person(구조체명)이 들어가야 하는데 실수로 빠진 건지 아니면 이 경우에는 구조체명을 쓰지 않아도 되는 건지 궁금합니다!

 

그리고 왼쪽 케이스 아랫부분 사용시 용례에

struct 구조체명 타입명;

이라고 되어있는데 여기서 타입명을 변수명이라고 이해해도 될까요? 뒷 강의에서 typedef를 다루면서 타입명이 나오기는 하는데 여기서도 typedef 키워드가 있을때를 의미하는 건지 헷갈려서요ㅜㅜ

답변 2

0

주말코딩님의 프로필 이미지
주말코딩
지식공유자

저 형태도 됩니다.

저렇게 이름을 명시하지 않은 것을 익명 구조체라고 합니다.

 

예제 하나 드립니다.

#include <stdio.h>

int main() {
    // 익명 구조체 선언과 변수 정의
    struct {
        char name[50];
        int age;
    } person1;

    // 나이 값 직접 대입
    person1.age = 25;

    // 반복문을 이용하여 name에 값 대입
    char tempName[] = "Weekend";
    for (int i = 0; i < sizeof(tempName); i++) {
        person1.name[i] = tempName[i];
    }

    // 출력
    printf("Name: %s\n", person1.name);
    printf("Age: %d\n", person1.age);

    return 0;
}

Name: Weekend

Age: 25

 

영상 내의 익명 구조체 예제와 아래 변수명을 붙인 설명은 따로인데

뭔가 코드 밑에 있으니까 두 개가 연관된 것처럼 보이네요..

아예 다른 것입니다.


 

넵 타입명을 변수명이라고 생각하셔도 됩니다.

struct Person이라는 타입으로 만든 변수가 person1으로 보시면 됩니다.

영상이 조금 헷갈리게 되어있네요. 추후에 수정하겠습니다.

 

피드백 감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다. 곽지원님.

구조체 선언 및 사용 방식에 관한 궁금증을 가지고 계신 것 같네요. 이와 관련하여 유사한 질문과 답변을 제공한 게시물들이 있어 소개드립니다.

1. 구조체 선언 방식

구조체를 선언할 때 두 가지 방법이 있습니다.

  • 첫 번째 방법: struct 키워드와 구조체 이름을 사용하여 구조체 변수를 선언합니다. 예를 들면:

    struct Person {
      // 멤버
    } person1;
    

    여기서 struct Person이 구조체의 이름(혹은 태그)이고 person1은 구조체 변수입니다.

  • 두 번째 방법: typedef를 사용하여 구조체의 별칭을 정의하고 좀 더 간단하게 변수 선언을 할 수 있습니다:

    typedef struct {
      // 멤버
    } Person;
    Person person1;
    

    이 방법은 typedef를 통해 구조체에 별칭을 줌으로써 struct 키워드를 생략하고 구조체 변수를 선언할 수 있게 해줍니다.

2. “타입명”과 “변수명” 구분

  • 구조체 선언 시:
    
    struct 구조체명 변수명;
    

    여기서 “구조체명”은 구조체의 태그를, “변수명”은 실제 구조체의 인스턴스 이름(변수명)을 의미합니다. 그러므로 “타입명”은 구조체의 타입을 가리키며, 이 타입으로 변수(인스턴스)를 선언하는 것입니다.

유사 질문 링크

이와 유사한 주제를 다룬 기존 질문이 있어 링크를 통해 더 깊이 있는 설명을 확인하실 수 있습니다:

  • “18번 typedef 키워드 질문”: 구조체 선언과 typedef 사용에 대해 다룬 질문입니다. 이 질문에서는 typedef 사용 시 이점과 구조체 변수 선언 방식에 대해 설명하고 있습니다.

이 자료를 참고하시어 이해에 도움 되시길 바랍니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Jii님의 프로필 이미지
Jii

작성한 질문수

질문하기