본문 바로가기

포인터3

[C/C++] C++에게 포인터란? C++에서 포인터가 필요한 이유는 바로 함수를 주소에 의한 전달 방식으로 정의하기 위해서이다. 함수를 주소에 의한 전달 방식으로 정의하면 실 매개 변수 값을 변경할 수 있다. 원칙적으로는 함수의 매개변수는 호출하는 쪽에서 호출 당하는 쪽으로 일방적으로 값을 전달한다. 즉, 한쪽방향으로만 값을 전달할 수 있다. 주소에 의한 전달 방식 역시 매개 변수로 값을 전달하는 것이므로 이러한 원칙을 그대로 지키고 있다. 하지만 주소에 의한 전달 방식은 변수의 주소 값을 실 매개변수로 사용하고 이를 포인터 변수 형태로 선언된 형식 매개변수가 전달받는다. 그런 다음 이 포인터 변수를 간접 참조함으로서 함수 호출후에 선언된 변수 값을 변경한다. 2011. 1. 26.
[C] Call by Value와 Call by Reference Call by Value : 함수에 인수를 전달할때 Copy 해서 전달 int main() { sum(10,20); return 0; } int sum(int A, int B) //int A,B에 10,20이 전달 될때 직접 Copy 하여 전달 되므로 { Call by Value 이다. return A+B; } Call by Reference : 함수에 인수를 전달할때 포인터형 변수(=주소)를 전달 int main() { int x= 10, y=20; sum(&x, &y); return 0; } int sum(int *A, int *B) //int *A,*B에 인수가 전달될때 int *A=&x *B=&y 로 전달되어서{ A와 B에는 x,y의 주소값으로 전달 되고 주소값에 있는 값을 참조 하여 사용 ret.. 2010. 4. 13.
[C++] Pointer Pointer도 하나의 변수!! 정수? 문자? 부동소수? 무엇을 담는 변수인가? 바로 Memory의 주소를 담는 변수이다. Pointer의 연산자 - 주소 연산자 int var; int *P; //정수형 Pointer 변수 P의 선언 P = &var; //변수 var의 주소값이 Pointer로 들어감 - 참조 연산자 int var1=1, var2; int *P; //정수형 Pointer 변수 P선언 P=&var1; //P에 var1의 주소값이 들어감 *P=5 //P가 가르키는 주소값에 5를 대입 var2=*P //변수 var2에 *P가 가리키는 주소값이 가지는값(=var1)을 var2에 대입 2010. 4. 12.