본문 바로가기

BackEnd/C

&연산자가 반환하는것은?

반응형

&연산자가 반환하는 것은 상수 형태의 포인터


&연산을 통해 얻은 주소값은 단순한 숫자가 아니라 상수 형태의 포인터이다.


포인터는 주소값과 함께 참조하는 대상의 자료형 정보도 지니는 변수와 상수를 의미한다.


자료형 정보는 *연산을 통한 메모리의 접근 방법을 결정하는 중요한 정보가 된다.


결론적으로 &연산자 또한 주소값과 참조 대상의 자료형 정보도 동시에 반환한다.


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