달력

12

« 2018/12 »

  •  
  •  
  •  
  •  
  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  
  •  
  •  
  •  

'레퍼런스'에 해당되는 글 2

  1. 2010.03.19 정말 사소한 팁.
  2. 2010.03.18 레퍼런스(Reference)
2010.03.19 00:28

정말 사소한 팁. 프로그래밍/사소한 팁2010.03.19 00:28







int형 레퍼런스를 리턴하는 함수와

쓰일것 같지 않은 캐스팅 연산자,

하지만 알고 있으면 언젠간 쓸일이 있겠지.

있겠지...?

있나..

있을까--a;;


결과는 다음과 같다.
결과를 보면 알 수 있겠지만,

전역변수 n1의 값이 변한 것을 알 수 있다.

return된 n1의 값에 10이 들어간것,
포인터를 이용해서 그 주소를 사용하여 어떻게 저떻게 하는것도 가능할 법 하지만
너무 복잡하게 생각하진 말자, 일단 그낭하다는 것만 알고 있자.
만약 저렇게 리턴되는 값에 대해서 변경을 막고 싶다면
그냥 앞에 const를 붙히기만 하면 되니 막는 법은 간.단.

pval과 val의 경우엔 사실 구지 실행해 보지 않아도 알 수 있지만,
val의 주소를 val에 넣었다고 보면 된다.
Posted by 안식의후크
2010.03.18 09:47

레퍼런스(Reference) 프로그래밍/C++2010.03.18 09:47







C++에서 추가된 기능으로 주소값을 넘겨주는 &연산자를 변수 선언시에 사용함으로써,

같은 메모리 공간을 사용하는 2개의 변수( 1개의 변수와 그 변수의 별칭 정도가 더 맞는 표현일지도 모르겠다)를 말한다.

같은 값을 가르킨다는 것에서 포인터와 비슷하다고 할 수도 있지만 그 개념은 조금 다르다.

레퍼런스 설정 방법




디버그 화면을 보면 알 수 있지만

포인터처럼 *a의 값이 10이 아니다

그냥 a자체가 10을 가지고 있다는 것이 포인터와 다른 점이라고 할 수 있겠다.

실제로 &사용해서 값을 받으면

int n1 = 10;
int a; 를 사용하나
int &a = n1;

실제 사용할때는 int a 나 int& a 나 차이가 없다는 것이다.

내가 봤을땐 포인터가 할 수 있는 일은 레퍼런스도 할 수 있고

레퍼런스가 할 수 있는 일은 포인터도 할 수 있는데,

구지 나눠서 써야 하는가? 하는 생각도 들긴 하지만,,,

그건 좀 더 생각해 봐야할 일인거 같고.

레퍼런스에 대해서 몇가지만 더 집어보고 넘어가자.



이정도면 충분할 듯.

'프로그래밍 > C++' 카테고리의 다른 글

클래스의 활용  (0) 2010.03.20
class(클래스) ~ C++의 꽃 ~  (0) 2010.03.19
레퍼런스(Reference)  (0) 2010.03.18
new & delete  (0) 2010.03.17
const 상수화  (0) 2010.03.17
namespace(이름 공간)  (0) 2010.03.15
Posted by 안식의후크