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

빵이좋아님의 프로필 이미지
빵이좋아

작성한 질문수

홍정모의 따라하며 배우는 C++

6.9 포인터 연산과 배열 인덱싱

포인터 변수끼리의 산술연산..?

작성

·

237

0

int main()

{
int a = 3;
int *ptr_a = &a;

std::cout << int((ptr_a + 1) - ptr_a) << std::endl;
}


저 연산 결과가 4가 나올 거라고 생각했는데 1이 나오더라구요, 각각 (int)로 캐스팅할 땐 4가 나왔는데.
저 연산은 그냥 ptr_a 가 상쇄되어서 그런건가요..? 아니면 그 떨어진 간격을 결과로 나타내어서 그렇게 나오는 것인가요?

답변 1

0

빵이좋아님의 프로필 이미지
빵이좋아
질문자

아 서치하다가 간격을 나타내는 거라고 한 걸 발견했습니다!! 

근데 그걸 int로 캐스팅 했을 때,  data size만큼의 값이 아니라 1이 나오는건  산술연산의 결과 자체가 이미 int형이어서 그런 것인가요..? 

음 그건 아니구요!  https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=tipsware&logNo=221192754086 이 블로그의 2번을 읽어보시면 궁금증 해결 되실 것 같습니다. (두 int 포인터끼리 뺄셈하면 4가 아니라 1이 나옵니다)

빵이좋아님의 프로필 이미지
빵이좋아
질문자

감사합니다!

빵이좋아님의 프로필 이미지
빵이좋아

작성한 질문수

질문하기