• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

문자열 char와 char* 관련 질문입니다.

23.06.26 20:53 작성 23.06.26 21:00 수정 조회수 338

0

안녕하세요 강의 듣는 도중 궁금한 점이 생겨서 질문 드립니다.

 

int BUF_SIZE = 100;

char a[BUF_SIZE] = "Hello"

char b[BUF_SIZE] = "World";

 

1.

strcpy나 strcat 같은 함수를 보면 char가 char* 형태의 매개변수가 될 수 있는 이유가

a가 배열이기 때문에 배열의 시작주소를 인자로 넘겨주기 때문에 가능한건가요?

 

2.

char형 변수는 데이터가 배열에 저장이 되기 때문에 복사가 이루어지면 그만큼 데이터를 복사하게된다고 생각이드는데

실무에서는 용량이나 트래픽을 아끼기위해서 char* 나 const char* 를 사용하는 편인가요??

 

답변 2

·

답변을 작성해보세요.

0

  1. char a[BUF_SIZE] = "Hello";
    은 char 타입이 아니라 사실상 char[BUF_SIZE] 이렇게 묶어서 보시는게 좋습니다.
    따라서 a는 char이 아니라 char 타입의 배열인 것이죠.
    그렇기 때문에 a는 배열의 주소를 나타내어 char*로 치환이 되는 것입니다.

  2. 상황에 따라 다릅니다. 나중에 vector를 다뤄보면 더 고민할 상황이 생기는데
    트래픽을 아끼기 위해서 * 포인터 타입을 사용하는 것은 불가능할 때가 많습니다.
    왜냐하면 주소값이라는 것은 항상 바뀌는거라 그것을 네트워크로 흘려보내면
    다른 컴퓨터 입장에선 아무런 쓸모없는 값이기 때문입니다.

 

5116696님의 프로필

5116696

질문자

2023.06.27

그렇군요.. 이해했습니다 감사합니다 ㅎㅎ

0

5116696님의 프로필

5116696

질문자

2023.06.26

2번 질문에 추가로 설명드리자면..
예전 TextRPG 시간에 사용하셨던 PrintStatInfo의 매개변수를 const char* 타입으로 인자를 받으신 후에
문자를 출력할때 같은 함수를 반복해서 사용하신게 기억이납니다.
그래서 const char* 타입의 변수를 사용하는게 더 나은건가해서 질문드립니다