본문 바로가기

기타

[c/c ] 포인트 자꾸만 잊어 버리는것.(1번)

변수정리

<<일반변수>>

int a = 1;

a 는 메모리의 특정 주소를 가르킨다.

1 은 메모리의 특정 주소에 들어 있는 상수 이다.

특정주소는 "a" 라는 이름으로 바꿨다.

왜? 특정주소를 외울수 있냐? 못하니깐. 대신 "a" 라고 알려주는것이다.

특정주소에 "1" 이라는 상수를 넣은것이다.

<<포인트변수 와 배열>>

char *ptr = "주소만 가지고 있다";

char myarray[] = "메모리 공간을 가지고 있다";

차이를 이해 못하면 포인트 잘못 공부 한것이다. 다시 공부해라.

char *ptr; // 포인트변수는 특정메모리를 가르키는 번지를 갔는다.

ptr = 300 ;

// <-- ptr에 주소를 가르치는 메모리값이 300번지 이다.

// 현재 어떤메모리인지는 컴파일만안다,알수있는명령어가 있지만 생략한다.

*(ptr) = *ptr = 300;

// 위하고 차이점은 뭘까? ㅋㅋ(숙제 다!! 꽁짜로 먹으려고 하지 마라!!)

// 모르겠으면 아래거 참고 할것.

*(ptr++) = 0; <-- ptr의 주소값 300번지를 1증가 시킨 주소가 가르치는 메모리에 "0"을 넣어준다.