목록전체 글 (261)
당니의 개발자 스토리
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
array to pointer decay 배열의 이름은 주소값으로 쓸 수 있다. 다른 말로, array to pointer decay 라는 현상이다. 이러한 배열이 있다고 하자. 이 배열의 이름으로 포인터를 할당할 수 있다. 쉽게 말하면, 배열의 이름에 배열의 주소값(= 배열의 첫 번째 원소의 주소값)이 들어있다는 것이다. int [] 와 int 는 당연히 다르다. int형 1차원 배열과 int형은 서로 다른 타입이다. 포인터를 선언할 때, 주소값이 가리키는 변수와 같은 타입으로 선언해야한다고 했었다. 그런데 그럼 int[] * c = a 라고 해야하는거 아닌가? 어떻게 int * 로 했는데 이게 가능할까? 바로 array to pointer decay 라는 현상이 일어났기 때문이다. 이런 식으로 포인터..
보호되어 있는 글입니다.
역참조 연산자 우리는 이러한 별표(*)를 에스터리스크(asterisk operator)로 부르기로 했는데, 사실 이러한 별표를 우리는 어떻게 사용하고 있는가? 곱셈할 때 사용한다. 그리고 포인터 할 때 사용한다. 그리고 이거 두 개 말고도 사실은 역참조 연산자로도 에스터리스크가 쓰인다. 이렇게 총 3가지의 기능을 가진 애가 에스터리스크다. 오늘은 이 역참조 연산자에 대해서 얘기를 해보도록 하겠다. 바로 실습 코드를 봐보자. 출력에 있어서, *를 붙이느냐, 안붙이느냐에 따라서 출력값이 달라지는 걸 볼 수 있다. 그림으로 이해를 해보자. kundol 이라는 값이 담긴 변수를 메모리 공간에 담았는데, 이 메모리 방은 주소가 있다. 그리고 변수명은 a 이다. string a = "kundol"; 인 거다. 그럼..