포인터 & 배열 개념... 좀 어지럽내요 알려주세요 ㅠㅠ
그녀는귀여웠다
우선.. 포인터는 가리키는 것 이며 , 주소를 가지는 변수 ..배열은 상수포인터 라고 하자나요???그런데 문자열 배열 포인터를 배우는중.. char str1 [5] = abcd ; //이게 왜 변수가 돼나요?? 상수라면서??char *str2 = ABCD; // 이건 또 왜 변수가 돼져??? int arr[2] { 1,2}int *parr 이렇게 하고 int arr=10int *parr =&arr & 주소 이고 parr 포인터가 주소 가리켜서 10 이 돼는거자나요?? 2개다 그런데 위에 배열을 가리키는 포인터는 주소 를 가리키게 돼내요?? 인트형 4바이트 씩 1나 증가할때마다요 *(arr+1);이런식이나 *(parr+1); 이런식으로요.. 이게 공식인가보죠?? 배열과 포인터가 같다는 ??? 증가시키는것이요..그리고 *arr++ 와 (*arr)++이거 였단가 감소 증감 연산자 이짜나요 포인터에 이거는 또 포인터에 주소가 증가 하던가 포인터가 가리키는 것이 증가 한다 이뜻인데.. 그러니깐 포인터 개념이 포인터 자체에도 주소가 존재 하나봐요??? 그거 주소를굳이 c언어 하는데 알아야 하는 지 .. 궁금 하내요.
-
앨버트
일단 제 설명에 있듯이 배열명은 상수 포인터입니다
int i[5]={1,2,3,4,5};
int *p=i; 가 맞는 표현입니다 님이 한대로하면 워닝이 나올것에요 ;; 하는것에는 문제가 없는데
워닝 생기는것 좀 보기 싫죠 ㅋㅋㅋ
그런데 여기서는 *p++입니다 ++은 여기서 선연산 후증가를 합니다 연산을 먼저하죠 연산은 *p에 접근해서 값을 보여주는것죠 그리고 나서 p에 주소를 가르키는 번지를 이동합니다 ㅋ -
유키
int i =10;
int *pu = &i ;
이거 하고 *pu++; 이거하니깐 포인터 주소값 증가 하자나요???
그런데
int i[5]={1,2,3,4,5};
int *pu=&i; 이거하고
*pu++; 이거하니 그대로 2뜨는데 왜그런거죠??