게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
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의주소값에 있는 값을 표시

이게맞나요?? '-'
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호