그러면 포인트는 현재 항상 4바이트의 크기를 같는다는게 어떤 자료형태이든 그 포인트 변수주소값 크기는 4바이트 할당되는게 아닌가요?
p+1은 그 포인트 변수에 4바이트를 건너뛰는거아니가요.? 좀 핵갈리네요 . . .
주누 님이 쓰신 글 :
: 포인터 변수 p를 가정할때 p+1은
: 포인터 변수 p의 타입 (char*, int*)에 따라서 계산 결과가 달라집니다.
: int *pi;
: char *pc;
: 에서 pi+1은 pi의 주소값에 int의 바이트 크기(4)만큼 이동되고
: pc+1은 pc의 주소값에 char의 바이트크기(1)만큼 이동됩니다.
: 포인터변수에 +연산은 위처럼 포인터 변수의 타입에 따라서 하는 행동이 달라집니다.
:
: *연산자는 뒤의 변수에 저장된 값(메모리주소)으로 메모리에 찾아가 해당 메모리에 저장되어 있는 값을 반환 하는 연산자 입니다.
:
: 또는 포인터 변수 생성시나 곱하기로도 사용되지요.
:
: 붕붕이 님이 쓰신 글 :
: : 안녕하세요
: :
: : 포인터와 1차 배열 중 포인트는 현재 4바이트 할당인데
: :
: : 포인터 변수 p를 가정하고
: :
: : p+1은 p가 저장하고있는 주소값에서 4바이트가 이동되는지..
: :
: : 아니면 p가 저장하고있는 주소의 변수 자료형 만큼 이동되는지 의문이 들어서요..
: : ex)
: : char * p;
: : char a;
: : p=a;
: : 이경우도 포인터 변수는 4byte만큼 할당대자나요
: :
: : 근대 (p+1)일때와 *(p+1)일때 차이점좀 알려주실수있을까요?
: :
: :
|