C언어 - 포인터의 산술 연산
2020. 11. 11. 21:57ㆍ개인공부/C언어
int* ptr = 0;
printf("%p %lld\n", ptr, (long long) ptr);
ptr += 1;
printf("%p %lld\n", ptr, (long long) ptr);
결과값 :
00000000 0
// ptr +1 이후
00000004 4
char* ptr = 0;
printf("%p %lld\n", ptr, (long long) ptr);
ptr += 1;
printf("%p %lld\n", ptr, (long long) ptr);
//int* ptr 대신 char* ptr 로 바꾸면
결과값 :
00000000 0
// ptr +1 이후
00000001 1
double* ptr = 0;
00000000 0
// ptr +1 이후
00000008 8
long long* ptr = 0;
00000000 0
// ptr +1 이후
00000008 8
// ptr +2 는
000000010 16
16진수라 16이되면 10이 된다.
// ptr -1 은
00000000 0
FFFFFFFF0 -16
int arr[10];
int* ptr1 = &arr[3], *ptr2 = &arr[5];
//ptr2 = ptr1 + ptr2; // 포인터 주소끼리 더하기 불가
//철수네집 주소랑 영희네집 주소 더한다고 무슨의미가 생기는가?
//int i = ptr2 -ptr1; // 포인트 주소끼리 빼기는 가능 // 얼마나 떨어져있나 알수있는 것
//철수네 305호 - 영희네 301호 는 4집 차이.
출처 : 홍정모의 따라배우는 C언어
'개인공부 > C언어' 카테고리의 다른 글
C언어 - 2차원 배열과 메모리 (0) | 2020.11.11 |
---|---|
C언어 - 포인터와 배열 (0) | 2020.11.11 |
C언어 - 배열의 기본적인 사용방법 (0) | 2020.11.11 |
C언어 - 배열과 메모리 (0) | 2020.11.11 |
C언어 - NULL 포인터와 런타임 에러 (0) | 2020.11.11 |