드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
c언어 포인터 이렇게 해석하는거인지좀 맞나 봐주세영
게시물ID : computer_50318짧은주소 복사하기
작성자 : 엘엔에스★
추천 : 0
조회수 : 478회
댓글수 : 1개
등록시간 : 2012/06/19 07:21:40
일단 구하고자하는건
포인터연산으로 1 하고 5의 중간에 있는 3을 나오게하는거예여
아직 포인터에대한 이해가 부족해서 ....
#include <stdio.h>
void main()
{
int ar[]={1,2,3,4,5};
int *p1,*p2,*p3;
p1=&ar[0];
p2=&ar[4];
p3=p1+(p2-p1)/2;
printf("중간의 요소 = %d",*p3);
}
ar배열 초기화
인티저형포인터 3개 선언
p1변수에 ar[0]의 주소값 저장
p2변수에 ar[4]의 주소값 저장
p3=p1+(p2-p1)/2; 에서
p2-p1 => ar[4]의 주소값 - ar[0]의 주소값
포인터끼리 빼면은 정수가 나오니까
주소값끼리 뺀거를 2로나눔. 그럼 p1에서 중간지점까지의거리가 정수형태로 나옴
여기에 ar[0]의 주소값을 더하면 p3의 주소값이나옴
그다음 printf에서 *p3으로 p3의주소값에 있는 값을 표시
이게맞나요?? '-'
댓글 분란 또는 분쟁 때문에
전체 댓글이 블라인드 처리되었습니다.
새로운 댓글이 없습니다.