언어/기타
2006.09.07 06:36

포인터변수.

조회 수 1097 추천 수 3 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

◇ 포인터 ◇
*** 포인터 변수란 『 변수를 가리키는 변수 』, 변수를 가리킨다는 것은 그 어드레스를 기억하는 것을 의미한다.
*** int형의 변수를 가리키는 포인터 변수 ptr은 다음과 같이 선언한다.
int * ptr; // ptr은 이 아닌, 이라고 선언하기 위한 지정자
*** 포인터 변수에 * 연산자를 붙이면 그 포인터 변수가 가리키는 변수의 실제 내용(* 연산자는 포인터에만 적용할 수 있다).
*** *연산자는 포인터 변수가 가리키고 있는 변수를 간접적으로 액세스하기 위한 연산자이기 때 문에 간접 연산자라 한다.
int x;
int *ptr; // ptr이 포인터 변수라는 것과 *ptr은 int형이라는 두 가지를 함께 생각
int z[10];
int * p;
p = &z[0]; // 배열에 & 연산자를 붙인 것이 아니고, 배열의 한 요소에 & 연산자를 적용한 것
*** C언어에서는 함수의 호출을 값에 의한 호출로 수행한다. 호출하는 쪽은 실인자로 값을 넘겨주 고 호출되는 쪽은 형식인자로 받은 값의 복사본을 사용한다.
#include
void swap(int * x, int * y)
{
int temp;
temp = *x;
*x = *y;
*y = temp;
}
main()
{
int a = 5, b = 3;
swap(&a, &b);
printf("a = %d, b = %dn",a,b);
return 0;
}
출력
a = 3, b = 5
*** swap함수처럼 2개 이상의 값을 돌려주고 싶을 때는 반드시 포인터를 사용해야 한다.
int i;
scanf("%d",&i);
※ C언어에서는 값에 의한 호출만을 사용하므로 『 인자의 값을 변경할 때에는 포인터형을 사 용하여 주고 받음을 해야하기 』 때문에 &를 붙이지 않으면 안된다.
◇ 포인터와 배열 ◇
ⓛ void func(int a[10]) 󰠜󰠜󰌊 ※ 컴파일될 때 어느 것이든, a는 int의 포인터로 해석된다
*** 일반적으로 포인터 변수 ptr에 대해서 ptr + i는 ptr이 가리키고 있는 요소의 i개 뒤의 요소를 가리키고 ptr - i 는 ptr이 가리키고 있는 요소의 i개 앞의 요소를 가리킨다. 
*** *는 그 포인터 변수가 가리키는 변수의 실제 내용을 나타내는 연산자이기 때문에 *(ptr + 1) 은 a[1]의 다른 명칭이 된다.
※ 󰠆󰠏 a[0]과 *ptr은 같은 내용.
󰠐 a[2]와 *(ptr + 2)는 같은 내용.
󰠌󰠏 a[9]와 *(ptr + 9)는 같은 내용.
※ ptr + i 는 a[i]의 어드레스이고 *(ptr + i)는 a[i]의 다른 명칭이 된다.
※ 󰠆󰠏 배열 a[n]에 대하여 a[i]를 *(a + i)라고 쓸 수 있다(&a[i]는 a + i).
󰠌󰠏 포인터 p에 대하여 *(p + i)를 p[i]라고 쓸 수 있다.


 


 


====================================================================================


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 

?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
1004 RPG Maker 물체 밀어서 움직이는 이벤트 조금 더 쉽게 하는 법 zero? 2018.01.02 644
1003 언어/기타 [마지막 3명 모집] [취업연계무료교육] VR/AR 게임 콘텐츠 전문가 양성 과정 교육생 모집 file 황금상자 2017.07.14 702
1002 RPG Maker rpg vxa 로 겜만들때 데미지 설정 공식[링크] 준E 2017.06.08 740
1001 RPG Maker [꿀팁] 간단하게 만들 수 있는 실시간 전투 시스템 1 file 준E 2017.03.31 2019
1000 언어/기타 JSON parser 변환데이터 저장시 생기는 Object Too Deep 해결하기 title: 댓글러lklslel 2016.12.24 851
999 언어/기타 앙뜨프리너십에서 해커톤 부트캠프 모집중이네요 file 마나님이 2016.11.08 908
998 RPG Maker RPG MV에서 플러그인 오류의 원인에 대하여 1 title: 댓글러lklslel 2016.07.08 2359
997 RPG Maker RPG MV 게임 도중에 윈도우 스킨 파일 자체를 통째로 바꿔버리는 방법 (출처: HIME) 최저 2016.07.08 1627
996 언어/기타 게임의 버전을 짜 보자! - 유의적 버전 2.0.0 Yanggaeng 2016.06.07 1123
995 RPG Maker 텍스트 대화 도중 메뉴 여는 방법을 알아냈습니다! 2 file 정궈니 2016.03.12 2938
994 RPG Maker rpgmv 마우스 지원과 터치 지원이 되니. 2 팡소리 2015.10.25 1011
993 RPG Maker RPG Maker MV 와 AJAX를 이용한 웹통신 관련 영상. 2 HT9MAN 2015.10.25 2246
992 언어/기타 RPG게임 뻔한요소들. 8 title: 천무천무 2015.10.05 1644
991 언어/기타 자바스크립트와 관련해서 참고할 만한 사이트들 3 MARCO 2015.10.04 921
990 언어/기타 꿀잼이군요! 3 사람님[대회참가] 2015.05.20 873
989 RPG Maker [RPG2000/3 팁] 간편한 이벤트 단축키 title: 자게이하앵 2015.04.06 1833
988 RPG Maker [RPG2000/3 팁] 간편한 이벤트 단축키 1 file title: 자게이하앵 2015.04.05 748
987 언어/기타 [강의링크] 대비법칙-색상대비-밀당의 재미 약한 반대색 설계 title: 천무천무 2015.04.02 636
986 언어/기타 오다 주웠습니다. 9 사람님[대회참가] 2015.03.30 917
985 언어/기타 무료 이미지 사이트 Pixabay! 9 file 나작소 2015.03.28 909
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 51 Next
/ 51


[개인정보취급방침] | [이용약관] | [제휴문의] | [후원창구] | [인디사이드연혁]

Copyright © 1999 - 2016 INdiSide.com/(주)씨엘쓰리디 All Rights Reserved.
인디사이드 운영자 : 천무(이지선) | kernys(김원배) | 사신지(김병국)