포인터 기본 

 & 변수명 : 어느 곳에 위치해있는지 주소값

* 포인터 변수명 : 해당 주소에 위치한 변수값 

따라서, 

p = &a 주소값을 의미하고, *p = a 변수값을 가리킨다. 



포인터를 사용하는 방식에는 주소에 의한 전달방식과 참조에 의한 전달방식이 있다. 


▶ 주소에 의한 전달방식으로 절댓값 구하는 함수 생성 

return값 없어 함수에서만 변환값 출력 가능 

#include 
using 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; }

소스를 보면 둘의 다른 점을 알 수 있을 것 같아 예시부터 제시했다. 물론 두 코딩의 결과는 동일하다. 

+ Recent posts