'C언어 포인터' 태그의 글 목록
본문 바로가기
728x90

C언어 포인터3

C언어 - 포인터 활용, call by value, call by reference 간단하게 설명하면 call by value는 변수의 값을 부르는 것이고 call by reference는 변수의 참고(주소)를 부르는 것이다. 사실상 C언어에서는 call by reference 보다는 call by address라고 보는 게 맞다. 공식적으로 C언어에서 call by reference를 지원하지 않는다. call by address를 통해 call by reference와 같이 사용할 수 있다. Call by value 함수의 매개변수에 인수의 실제 값을 복사한다. 이경우 함수 안에서 매개변수끼리 값이 변하기 때문에 실제 인수 값에 영향이 가지 않는다. 즉 Call by value 함수 내에서만 값이 변경되고 실제 인수 값은 변함이 없게 된다. 실제 값을 변경할 필요가 없는 경우에 사용.. 2020. 10. 16.
C언어 - 포인터 연산, 포인터와 배열의 관계 포인터 연산 예를 들어 포인터 변수 p에서 *p일 경우 주소가 가리키는 값을 표시하고 p일결우 주소 값을 가리킨다. 이점에 주의하여 연산을 해야 한다. *p += 1, *p++, (*p)++ 의 차이점을 알아보자! *p += 10 같은 경우는 쉽게 이해가 될 것이다. 큰 차이점을 보인 것은 (*p)++ 와 *p++이다. 연산자에서 우선순위가 있어서 나타나는 현상이다. 연산자의 우선순위를 따라 ++,--가 포인터 연산자보다 우선이다. 포인터 연산자는 우선순위 2위인 간접 참조*이다. 그래서 포인터보다 먼저 p의 값이 증가되어 주소 값이 증가된다. (int는 4 바이트 이므로 주소 값이 4가 증가된다.) ++,-- 연산자를 사용할 때 주의해야 한다. a = 0x7ffee993598c *a = 5 a++ = .. 2020. 8. 28.
C언어 - 포인터(Pointer) 변수의 메모리 주소, 값 메모리는 메모리의 값과 메모리의 주소와 같이 저장된다. 실행 결과를 보면 a의 값은 5로 나오고 &a는 a의 주소 값을 출력한다. 이때 주소는 고정된 값이 아니라 컴퓨터마다, 실행할 때마다 달라진다. *시스템에 따라 32비트 64비트에 따라 메모리의 범위도 달라진다. 포인터란 메모리의 주소값을 저장하기 위함이다. 메모리 값이 변수에 저장되듯 메모리의 주소는 포인터 변수에 저장된다. 포인터 변수 선언 선언 시 포인터 변수를 사용한다. 자료형* 변수명 - int* hi; 자료형 * 변수명 - int * hi; 자료형 *변수명 - int *hi; 세 가지 방식으로 선언 가능하다. 편한 방식으로 사용하면 된다. 포인터는 선언 시 반드시 먼저 초기화되어야 한다. 그렇지 않으면 의도하지 않.. 2020. 8. 21.
728x90