조무위키
조무위키
둘러보기
대문
최근 바뀜
임의의 문서로
미디어위키 도움말
도구
여기를 가리키는 문서
가리키는 글의 최근 바뀜
특수 문서 목록
문서 정보
행위
문서
토론
편집
역사 보기
포인터
편집하기
경고:
로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다.
로그인
하거나
계정을 생성하면
편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
스팸 방지 검사입니다. 이것을 입력하지
마세요
!
{{틀:공대생}} 프로그래밍의 개념 대표적으로 C에서 이걸 쓴다. C 공부할때 보통 여기서 많이 막히는데 막상 이해하면 존나쉽다. 모든 변수나 상수는 기본적으로 메모리에 저장이 된다. 메모리는 기본적으로 고유의 이름(주소)를 가지고 있고, 거기에 일종의 별명을 부여하는 게 변수의 선언 원리다. 포인터에 대한 연산자는 곱셈기호이기도 한 '*'를 쓰는데, 타입과 포인터접근 두가지의 의미로 사용이 된다. 예시 코드 int var=20; <br /> int* ptr=&var;<br /> printf("%p ₩n %d",ptr,*ptr);<br /> 여기에서 int*는 int타입 변수의 주소값을 담을 수 있는 '타입'이라는 의미이다. 기본제공 타입을 비롯해 사용자 정의 타입에 이르기까지 모든 타입에 포인터형을 사용할 수 있다. 그리고 포인터타입은 전부 기본적으로 4바이트 공간을 차지한다. 그리고 int*타입 포인터변수 ptr에 &var이라는 값을 저장한다. 여기서의 &은 해당 변수의 주소값을 반환하는 연산자다. 이렇게 되면 ptr은 var이라는 변수의 주소값을 가지는 포인터변수가 된다. 그러면 이제 ptr을 통해 var이라는 변수에 본질적으로 접근할 수 있다. *ptr; 이러면, ptr에 담긴 주소값을 참조해 20이라는 값을 찾아내어 반환한다. 그러면 이것을 어떨때 사용할까? 보통 다른 함수들과 상호작용을 할때 많이 쓴다. C언어의 함수 파라미터는 기본적으로 '값'만을 복사하기 때문에 A라는 함수에서 X라는 변수를 함수 B에 전달하고, 함수 B에서 전달받은 X의 값을 변화시킨다고 하더라도 A 내의 X값은 전혀 변하지 않는다. B에 전해진 값은 X 메모리 공간 자체가 아니라, X에 담긴 '값'뿐이기 때문이다. 아 시발 귀찮다 아무나 이어서 써라
요약:
조무위키에서의 모든 기여는 CC BY-SA 4.0 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는
조무위키:저작권
문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.
저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소
편집 도움말
(새 창에서 열림)
이 문서에서 사용한 틀:
틀:공대생
(
편집
)
틀:알림 상자
(
편집
)