포인터 썸네일형 리스트형 [C언어] 포인터(9) - 함수와 포인터(값에 의한 호출, 참조에 의한 호출) 안녕하세요 ! 초보개발자 입니다. 이 블로그는 개인 공부 정리용 블로그 입니다. 혹 잘못된 내용이 있다면 지적 부탁드리겠습니다.그리고 질문주신다면 최대한 아는선에서 답변드리도록 하겠습니다.그럼 시작하도록 하겠습니다. 함수와 포인터 함수를 호출 할 때 인수의 값이 매개변수로 복사되어 전달이 됩니다. 이것을 값에 의한 호출(call by value)이라고 합니다. 반면 포인터를 매개변수로 선언하면 호출된 함수로 주소를 전달하는 것이 가능하며 이것을 참조에 의한 호출(call by reference)라고 합니다. 그럼 먼저 값에 의한 호출에 대해서 알아보도록 하겠습니다. 1) 값에 의한 호출(call by value) 아래의 코드를 보겠습니다. 1234567891011121314151617181920#incl.. 더보기 [C언어] 포인터(5) - 포인터의 연산 안녕하세요 ! 초보개발자 입니다. 이 블로그는 개인 공부 정리용 블로그 입니다. 혹 잘못된 내용이 있다면 지적 부탁드리겠습니다.그리고 질문주신다면 최대한 아는선에서 답변드리도록 하겠습니다.그럼 시작하도록 하겠습니다. 1.포인터(5) 1) 포인터의 연산 포인터에 저장된 값은 부호없는 정수 입니다. 그렇기 때문에 정수 처럼 덧셈 뺄셈 등 증감연산자나 비교연산도 가능합니다. 다음과 같은 코드에서 ptr++의 결과를 알아 보도록 하겠습니다. int *ptr = (int *)0x100; ptr++을 하였으니 0x101될 것이라고 생각할 수 있습니다. 하지만 이것은 잘못된 생각 입니다. ptr은 int 형이기 때문에 0x100 ~ 0x103 까지의 범위를 사용합니다. 그렇기 때문에 ptr++을 했을 경우에는 0x1.. 더보기 [C언어] 포인터(3) - 포인터와 배열 안녕하세요 ! 초보개발자 입니다. 이 블로그는 개인 공부 정리용 블로그 입니다. 혹 잘못된 내용이 있다면 지적 부탁드리겠습니다.그리고 질문주신다면 최대한 아는선에서 답변드리도록 하겠습니다.그럼 시작하도록 하겠습니다. 1.포인터(3) 1) 포인터와 배열 포인터로 배열도 다룰 수 있습니다. 길이가 4 인 int배열 arr(int arr[4]={0,1,2,3} 이 있을 경우 메모리에 저장된 배열은 다음과 같이 나타낼 수 있습니다. 배열 요소의 타입이 int 형이므로 배열의 각 요소의 사이 간격은 4byte인것을 알 수 있습니다. 예제를 통해서 알아 보겠습니다. 12345678910111213141516#include int main(void) { int arr[4] = { 0,1,2,3 }; int *pt =.. 더보기 [C언어] 포인터(2) - 포인터의 형변환 안녕하세요 ! 초보개발자 입니다. 이 블로그는 개인 공부 정리용 블로그 입니다. 혹 잘못된 내용이 있다면 지적 부탁드리겠습니다.그리고 질문주신다면 최대한 아는선에서 답변드리도록 하겠습니다.그럼 시작하도록 하겠습니다. 1.포인터(2) 1)포인터의 형변환 포인터의 타입도 변수처럼 형변환이 가능합니다. 포인터의 타입이 의미하는 것은 얼마만큼의 데이터를 읽어 오는지에 대한것이며 포인터 타입이 형변환이 되면 읽어올 데이터의 양과 해석방법이 달라질뿐 저장된 값에는 아무런 영향을 미치지 않습니다. 단계별로 포인터 타입간의 형변환을 살펴보도록 하겠습니다. (1) 변수 i의 주소를 포인터pi에 저장을 합니다.(i의 주소값은 0x100이라고 가정하였습니다.)int i =0x1B2B3B4B;int *pi = &i; (2) .. 더보기 [C언어] 포인터(1) - 포인터란 ? 안녕하세요 ! 초보개발자 입니다. 이 블로그는 개인 공부 정리용 블로그 입니다. 혹 잘못된 내용이 있다면 지적 부탁드리겠습니다.그리고 질문주신다면 최대한 아는선에서 답변드리도록 하겠습니다.그럼 시작하도록 하겠습니다. 1. 포인터 1. 변수와 메모리 주소 int i = 1; 이 코드는 int형 타입의 변수 i를 선언하고 1을 저장한 코드입니다. 변수 i는 메모리 어딘가에 저장될 것 입니다. 위 그림에서 파란색 부분이 i 변수 입니다. 메모리의 주소는 0x100 ~ 0x103 까지 4byte의 공간이 주어졌습니다. 요약하면 다음과 같습니다. 변수의 이름 : i변수의 타입 : int메모리 주소 : 0x100값 : 0x000000001 이때까지 변수를 변수의 이름으로만 다루었지만 변수를 주소로 다루는 것도 가능.. 더보기 이전 1 다음