포인터 변수 이해가 잘안됩니다.
걸때
2024.02.13
■ 포인터 변수 p가 가리키는 번지의 증가
rm_Main
*p++
*p; p++; 두 문장의 결합과 같다.
*++p
p++; *p; 두 문장의 결합과 같다.
-------------------------------------------------
같은 의미라던데요 막상 해보면 값이 안나오거든요??
뭐죠??
두 문장의 결합이라면 (*p)++이거라는 거같은데요
그렇게되면 *p가 가지고 있는 메모리속의 값이라는 거잖요
그니까 메모리 참조해서 그속에 있는 값을 출력하는거 잖아요?
거기에 ++인 증가연산자를 써서 만약 10이면 11이 되게 해야
하는데 출력을 해보면 메모리값만 출력된다 이겁니다.
이거 왜 이런거죠??
-
멱부리 2024-02-13
printf(\%d\
-
즐겨찾기 2024-02-13
*p++
*p; p++; 두 문장의 결합과 같다.
*++p
p++; *p; 두 문장의 결합과 같다.
저도 포인터 부분은 잘 모르는데... 제가 이해한데로 설명을 드리면 먼저 윗부분
*p++는 연산자 우선순위에 의해 *p후 p++가 되므로 *p가 가리키고 있는 값을 +1 시킵니다.
가리키고 있는곳의 값이 10이라면 11이 되는거죠
그리고 아래 *++p는 p의 값이 먼저 증가하기 때문에 먼저 주소값이 먼저 증가하고 그 다음 가리키기
때문에