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
'Development > C++' 카테고리의 다른 글
컴파일러에 따라 바뀌는 enum 의 크기 문제 (0) | 2017.02.09 |
---|---|
addr2line 사용법 (1) | 2015.10.06 |
language string '"c"' not recognized (0) | 2014.10.31 |
error C2243: '형식 캐스팅' : ...(으)로의 변환이 있지만 액세스할 수 없습니다. (0) | 2014.05.15 |
error C2360: 'value' 초기화가 'case' 레이블에 의해 생략되었습니다. (0) | 2014.05.15 |