본문 바로가기
C언어(C language)/C 함수 배열 포인터

포인터2(with array)

by 공.대.남 2018. 9. 7.
반응형

배열과 포인터의 관계에 대해 알아볼게요.



arr자체의 값은 주소와 같아요.

예>>

 또한 arr의 값은 arr[0]의 주소와 같아요. 그리고 배열의 특성상 *(arr+1)=arr[1],*(arr+2)=arr[2]가 됩니다.


다음은 변수2개의 값을 서로 바꾸는 swap함수를 작성해보았어요.

일반적으로 swap()은 그값이 바뀐후, 다시 값이 원래대로 출력이 됩니다. 

그 바뀐 값을 계속 유지시켜주기위해서 swap_addr()을 작성해 보았어요.

유지시켜주기위해서는 값만 바꾸어주는 게 아니라, 그 주소가 가리키는 값을 바꾸어 주어야해요.

>>>2개의 함수의 차이점은 값을 바꾸어만 주는가, 주소에 해당하는 값을 바꾸어주는가의 차이<<<


먼저 포인터 a,b를 ()안에 선언해 주시고, a가 가리키는 값을 temp에, b가가리키는 값을 a가가리키는 값에, 그리고 temp를 b가 가리키는 값에 넣어주고, 메인함수에 swap_addr(&a,&b)를 실행시키면 실행한 후에도 값은 유지됨을 알수있어요!!

728x90
반응형

'C언어(C language) > C 함수 배열 포인터' 카테고리의 다른 글

포인터1  (0) 2018.09.07
아스키(ASCII) 코드  (0) 2018.09.05
배열  (0) 2018.09.05

댓글