반응형
&연산자가 반환하는 것은 상수 형태의 포인터
&연산을 통해 얻은 주소값은 단순한 숫자가 아니라 상수 형태의 포인터이다.
포인터는 주소값과 함께 참조하는 대상의 자료형 정보도 지니는 변수와 상수를 의미한다.
자료형 정보는 *연산을 통한 메모리의 접근 방법을 결정하는 중요한 정보가 된다.
결론적으로 &연산자 또한 주소값과 참조 대상의 자료형 정보도 동시에 반환한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 | int main(void) { int num1=7; double num2=0.0012; *(&num1)+=1000; *(&num2)+=1000.0; printf("%d \n", num1); printf("%f \n", num2); return 0; } | cs |
1 2 | 1007 1000.001200 | cs |
6~7행을 보면 &연산의 결과를 이용해서 다시 *연산을 하고있다.
즉 &연산의 결과로 반환된 주소값에 해당하는 메모리 영역에 접근을 해서 1000씩 증가시킨다.
*연산을 할수 있다는 것은 &연산의 결과가 포인터라는 것이다. 실제로 & 연산자가 반환하는 것은
포인터의 형 정보를 함께 지니는 주소 값이다. 즉 상수 형태의 포인터가 반환되는 것이다.
반응형
'BackEnd > C' 카테고리의 다른 글
포인터의 포인터 (0) | 2019.03.13 |
---|---|
문자열 배열과 문자열을 참조하는 포인터 (0) | 2019.03.12 |
잘못된 포인터 사용의 예와 NULL 포인터 (0) | 2019.03.12 |
포인터 형과 *연산자 (0) | 2019.03.12 |
포인터 변수 선언 (0) | 2019.03.12 |