오늘은 포인터 연산자에 대하여 배우게 될 건데요
포인터 연산자는 제가 그냥 포인터와 관련된 연산자를 간단하게 말하기 위해서 임의로 정한 말이니 뭐... 딱히 알아두시지 않으셔도 좋을 것 같습니다.
포인터 연산자는 두개정도 있습니다.
&와 *이 포인터 연산자로 존재하는데 *은 곱셈 연산자와는 거리가 멀다 연산이 되는 피연산자라는 녀석이 존재하는데 여기서의 피연산자는 2개가 아닌 한개이기에 곱셈연산자가 아닙니다.
그러니 곱셈연산자와 포인터 연산자를 혼돈하지 않는 것으로 해야할 것 같습니다.
일단 &연산자를 설명하려고 하는데
이 연산자는 전에 말했던것 같기도하고..... 아무튼 자세히 다시 설명을 하려고 하니 일단 들어두시는 것을 추천합니다.
아무튼!!이 연산자는 변수의 주소(이름)을 반환하는 연산자입니다.
그래서 표현을 하자면
1 2 3 4 5 | int main() { int nm = 7; int * pnm = &nm; //코드 } | cs |
이런 식으로 나오게 될겁니다.
그러면 이제 & 연산자의 피연산자는 변수이어야 합니다.
그러니 다른 것이 온다고 하더라도 오류를 뿜뿜하고 내뿜지 않을까 합니다.
또한 주의를 해야할 점으로는 int형 변수는 int형 포인터 변수에 저장을 해야 합니다.
또는 이 반대의 경우는 용납이 가능합니다.
int는 int에 저장을 해야할 필요가 있습니다.
이어서 *연산자를 설명하도록 하겠습니다.
이 연산자는 메모리 공간에 접근할 시 사용하는 연산자입니다.
그러면 간단하게 설명을 하도록 하겠습니다.
만약
1 2 3 4 5 | int nm = 100, nm1 = 100; int * pnm; pnm = &nm; (*pnm) += 48; printf("nm : %d, nm1 : %d", nm, nm1); | cs |
이러한 코드가 존재한다면 이렇게 표현이 가능합니다.
1| nm이라는 변수에 100의 값을 nm1이라는 변수에 100의 값을 저장한 상태로 선언합니다.
2|pnm이라는 포인터 변수를 선언합니다.
3|pnm이라는 포인터 변수는 nm이라는 변수를 가리킵니다.
4|pnm이라는 포인터 변수가 가리키는 변수에 48을 더하고 저장합니다.
5|"nm : (nm의 값), nm1 : (nm1의 값)"을 출력합니다.
라는 의미로 해석이 가능해 집니다.
그러면 이 코드를 출력했을 시
nm은 148이 출력되고 nm1은 100이 출력됩니다.
그러면 4번 째 줄을 보는 것으로 설명을 마치겠습니다.
4번 째 줄의 형태는 이러합니다.
*pnm 즉 pnm이 가리키는 nm에 48을 더하고 저장하는 코드가 되는 것이죠 네... 아무튼!! 이렇게 사용이 가능해 집니다.
그러면 다음 강좌에서 뵙도록 합시다.
'프로그래밍일지 (고등학생 - 인문계) > C' 카테고리의 다른 글
출력된 모든 글자를 지우고 다시 출력해보자!! (0) | 2018.04.13 |
---|---|
'포인터 형'이 다양한 이유는...? (0) | 2018.04.10 |
드디어 포인터다!!! (0) | 2018.04.02 |
배열...? 그게 뭐죠?? (1) | 2018.03.19 |
매번 다른 값을 나오게 해보자! (0) | 2018.03.17 |