강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của answjdals777598
answjdals777598

câu hỏi đã được viết

Học C++ cùng Hong Jeong-mo

6.9 Số học con trỏ và lập chỉ mục mảng

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

Viết

·

288

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 가 상쇄되어서 그런건가요..? 아니면 그 떨어진 간격을 결과로 나타내어서 그렇게 나오는 것인가요?

C++

Câu trả lời 1

0

answjdals777598님의 프로필 이미지
answjdals777598
Người đặt câu hỏi

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

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

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

answjdals777598님의 프로필 이미지
answjdals777598
Người đặt câu hỏi

감사합니다!

Hình ảnh hồ sơ của answjdals777598
answjdals777598

câu hỏi đã được viết

Đặt câu hỏi