포인터 기본
& 변수명 : 어느 곳에 위치해있는지 주소값 * 포인터 변수명 : 해당 주소에 위치한 변수값 |
따라서,
p = &a 는 주소값을 의미하고, *p = a 는 변수값을 가리킨다.
포인터를 사용하는 방식에는 주소에 의한 전달방식과 참조에 의한 전달방식이 있다.
▶ 주소에 의한 전달방식으로 절댓값 구하는 함수 생성
return값 없어 함수에서만 변환값 출력 가능
#includeusing namespace std; void absolute(int *abs); void main() { int a = -10; absolute(&a); cout << "main에서 함수 호출 후 a값 = " << a << "\n"; } void absolute(int *abs) { if (*abs < 0) *abs = -*abs; }
▶ 참조에 의한 전달방식으로 절댓값 구하는 함수 생성
참조 변수는 선언할 때만 일반 변수 선언과 달리 변수명 앞에 &기호를 붙일 뿐 프로그램 상에서는 일반 변수를 동일하게 사용한다.
#include
using namespace std; void absolute(int &a); void main() { int a = -10; absolute(a); cout << "main에서 함수 호출 후 a 값 = " << a << endl; } void absolute(int &a) { if (a < 0) a = -a; }
소스를 보면 둘의 다른 점을 알 수 있을 것 같아 예시부터 제시했다. 물론 두 코딩의 결과는 동일하다.
'study > C++' 카테고리의 다른 글
[구조체] 구조체 배열로 5명의 성적을 입력받아 총점, 평균 출력하기 (0) | 2017.05.14 |
---|---|
[배열과 포인터]1차원 포인터와 2차원 포인터의 정의 (0) | 2017.04.28 |
[함수]함수를 이용한 짝홀 판단 / 함수를 이용한 평균 구하기 (0) | 2017.04.18 |
[제어문] 알파벳 A-Z까지 출력 / *로 역삼각형 출력 / 구구단 프로그램 출력 (0) | 2017.04.03 |
논리연산자/전위연산자와 후위연산자의 구분/아스키코드 대소문자 변환 (0) | 2017.03.26 |