도드넷
C++ 포인터 개념정리, 총정리 본문
C++ 포인터 개념정리, 총정리
1. 포인터란?
다른 변수의 주소를 저장하는 변수
2. 포인터 선언하기
변수타입 *포인터변수이름;
* ← 에스크리터 연산자 (포인터)
3. 포인터에 주소 저장하기
변수타입 *포인터변수이름 = &변수이름;
& ← 앰퍼센트 연산자 (주소)
4. void *변수이름
모든 타입의 변수 주소를 저장할 수 있음
단, 포인터가 가리키는 값을 사용하려면 임시변수에 저장해서 형변환해서 간접적으로 사용해야함!
형변환하는 법 ↓
5. 포인터와 배열
모든 배열의 이름은 상수 포인터로 첫번째 요소의 주소값을 저장한다.
예를 들어 char a[99]; 라는 배열이 있다고 하자,
a 는 &a[0] 라는 주소를 저장하고 있다.
*a 가 가리키는 것은 a[0] 이다.
포인터명에 숫자를 더해서 원하는 배열의 요소를 가리킬 수 있다.
*(a+1) → a[1]
또 반대로, 어떤 포인터에 배열의 이름을 저장해서 그 포인터를 배열로써 사용할수도 있다.
6. 포인터와 2차원 배열
x[i][j] = *(x[i] + j) = *(*(x + i) + j)
7. 포인터와 함수 (Call By Reference)
Argument을 주소로, Parameter를 포인터로 받는 함수
불러온 데이터의 값을 함수 사용중 오염/변형 가능하는 것에 주목.
8. 함수 포인터
함수 포인터는 함수이름(주소)을 저장.
어떤 함수를 또 다른 이름으로 사용하거나
함수포인터를 Parameter로 설정하여 함수이름(주소)를 Argument로 받을 수 있음.
9. 함수 포인터 선언/사용하기
선언 : 리턴타입 (*함수포인터이름)(Parameter);
* 저장하려면 함수와 Parameter가 동일해야함
저장 : 함수포인터이름 = 다른_함수이름;
사용 : 함수포인터이름();
10. 포인터와 구조체
포인터 구조체는 구조체변수의 주소를 저장함.
선언 : struct 구조체이름 *포인터이름;
저장 : 포인터이름 = &구조체변수이름;
요소접근 : 포인터이름->요소이름;
"세상에는 포인터를 이해하는 사람과 그렇지 못한사람으로 나뉜다...."
저는 아직도 "이딴걸 왜쓰는거지" 라고 생각드니까 후자에 속하는것 같으므로
그냥 이게 뭔지만 알고 넘어가렵니다. ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 우리모두 포인터같은건 없는 자바를 공부합시다
'창고 > C++ [폐쇄]' 카테고리의 다른 글
C++ 에서 Call By Value 란? (0) | 2014.10.31 |
---|---|
C++ 랜덤 수 뽑기 함수/명령어 (0) | 2014.10.22 |
[C++] 로또 프로그램 By DOD (2) | 2014.10.07 |
cin.clear, cin.fail, cin.ignore에 대한 개념정리! (1) | 2014.09.25 |
C++ 문장 입력하는 완벽한 방법!! (string 과 getline) (2) | 2014.09.24 |