playXP

서브 메뉴

Page. 1870 / 12504 [내 메뉴에 추가]
글쓰기
작성자 아이콘 marine12
작성일 2018-12-19 23:19:53 KST 조회 253
제목
c++에서 *가 의미하는 게 정확히 먼가요?

기억해야 할 주소값을 입력시키는 건가요? 예를 들어 string* book_list와 그냥 string book_list의 차이점이 먼가요? 이거 이해하기가 젤 어려워서..

지속적인 허위 신고시 신고자가 제재를 받을 수 있습니다.
신고 사유를 입력하십시오:

아이콘 TARS (2018-12-20 00:11:43 KST)
0↑ ↓0
센스 이미지
string* book_list면 book_list라는 변수에는 어떤 string형 변수의 주소가 들어있음.
반면 string book_list라면 book_list에는 string형에 해당하는 변수가 들어있음.

근데 변수 이름이 리스트인데 그냥 변수일리가 없잖아 행렬이겠지...

이게 C C++은 행렬을 포인터 취급해서 헷갈리는거임
아이콘 칠십삼 (2018-12-20 00:43:04 KST)
0↑ ↓0
센스 이미지
int a = 5;
을 컴파일하면 컴퓨터 메모리(여기선 스택에 저장된다고 합시다.)에 5라는 값이 저장됩니다.
예를 들어 0xff0400이라는 주소에 5라는 값이 들어있으며 a라는 이름으로 접근할 수 있습니다.

int *b = &a;
을 컴파일하면 변수 a의 주소가 b에 할당됩니다. (단항 & 연산자는 변수의 주소를 반환) 예를 들어 스택에 0xff00408에 a의 주소 0xff00400이 저장되는 것입니다. 여기서 int *는 b에 저장된 값이 int 형 변수의 주소값임을 나타냅니다. 따라서 이 정보를 이용해서 컴파일러는 나중에 b를 이용해 a의 주소에 접근할 때 a에 저장된 데이터가 int형임을 알 수 있습니다. 만약 char *b = &a; 라고 b에 a의 주소를 저장하면 b에 저장된 값을 이용해 a의 주소에 접근할 때 컴파일러는 a에 저장된 값을 char형으로 해석합니다.
아이콘 marine12 (2018-12-20 00:57:47 KST)
0↑ ↓0
센스 이미지를 등록해 주세요
ㄴ 아하 이해가 갔씁니다 ㄳㄳ
아이콘 TARS (2018-12-20 01:13:39 KST)
0↑ ↓0
센스 이미지
파일포켓 이미지
.
댓글을 등록하려면 로그인 하셔야 합니다. 로그인 하시려면 [여기]를 클릭하십시오.
롤토체스 TFT - 롤체지지 LoLCHESS.GG
소환사의 협곡부터 칼바람, 우르프까지 - 포로지지 PORO.GG
배그 전적검색은 닥지지(DAK.GG)에서 가능합니다
  • (주)플레이엑스피
  • 대표: 윤석재
  • 사업자등록번호: 406-86-00726

© PlayXP Inc. All Rights Reserved.