작성한 질문수
홍정모의 따라하며 배우는 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
아 서치하다가 간격을 나타내는 거라고 한 걸 발견했습니다!!
근데 그걸 int로 캐스팅 했을 때, data size만큼의 값이 아니라 1이 나오는건 산술연산의 결과 자체가 이미 int형이어서 그런 것인가요..?
음 그건 아니구요! https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=tipsware&logNo=221192754086 이 블로그의 2번을 읽어보시면 궁금증 해결 되실 것 같습니다. (두 int 포인터끼리 뺄셈하면 4가 아니라 1이 나옵니다)
감사합니다!
음 그건 아니구요! https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=tipsware&logNo=221192754086 이 블로그의 2번을 읽어보시면 궁금증 해결 되실 것 같습니다. (두 int 포인터끼리 뺄셈하면 4가 아니라 1이 나옵니다)