c++ 변수선언 문법 질문입니다.

조회수 594회
  1. 질문코드

    const std::vector<const char*> checkList = {
    "midi_null_data"
    };
    
  2. 질문내용

checkList 라는 변수를 선언할 때 맨 앞에 const는 이해가 가는데 벡터 데이터 타입에 왜 또 const가 들어가는지 이해가 되지 않습니다.

미디 통신관련 샘플코드에 저렇게 되어 있던데 무슨 의미인지 궁금합니다.

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 정확한지는 모르겠지만 일단 답변을 해볼게요.

    일단 const라는 키워드가 앞에 붙이는 이유는 원본값을 수정하지 않게 하기 위한 기능이잖아요.

    여기서 vector const는 const char의 주소를 저장하는 컨테이너 하나의 값의 원본을 바꾸지 않겠다는 의미가 아닐까요.

    그리고 컨테이너 하나가 들고 있는 데이터는 char라는 포인터.

    그래서 char포인터 앞에 const가 붙은건 원본으로 접근 했을때의 그 문자열을 수정하지 않기 위함이 아닐까 생각합니다.

    // 저도 초보라서 ㅠㅠ

    • 답변 감사합니다! 솔직히 답변을 듣고도 잘 이해는 안 되지만 말씀하신 의미가 맞는거 같습니다. 여러 번 읽고 또 생각해 보겠습니다. 감사합니다. 알 수 없는 사용자 2018.12.14 18:40
    • 맨 앞에만 const 걸어 줘도 값의 수정은 불가하더라구요. 근데 도대체 왜 vector 데이터 타입에도 const 를 붙이고 타입을 넣어 준건지 이해가 안 되네요 ㅠㅠ 알 수 없는 사용자 2018.12.14 18:46

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)