int* 와 char* 차이점


int형 포인터 변수와 char형 포인터 변수 모두 4바이트(혹은 64비트 OS 에서는 8바이트) 로 동일하다.


하지만 두 포인터 변수의 차이는 포인터 연산에서 차이가 있다.


int형 포인터 변수의 경우 +1 을 할 경우 주소값이 4바이트씩(int 형의 바이트 크기 만큼) 이동을 하게 되며


char형 포인터 변수의 경우 +1을 할 경우 주소값이 1바이트씩 이동을 하게된다.


ex) 

 int a[10];

 char b[10];


위와 같은 배열이 있을 경우

 a+4 는 &a[4] 와 동일하며 b+2 는 &b[2]  와 동일하다.



int a[10];
char b[10];

*(a+4) = 100;
*(b+2) = 20;

printf("===> %d, %d", a[4], b[2]);


위 코드의 실행 결과는 아래 와 같다.




  
===> 100, 20


Posted by 후미카
:

카테고리

전체보기 (102)
Development (102)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

달력

«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

글 보관함