*(int *)CV = (int)0;
나는 C 코드를보고 있었으므로이 코드 줄을 이해할 수 없습니다. 이 내용을 해석하고 그 내용을 설명해 주시겠습니까? 감사이 C 코드 행을 이해할 수 없습니다.
*(int *)CV = (int)0;
나는 C 코드를보고 있었으므로이 코드 줄을 이해할 수 없습니다. 이 내용을 해석하고 그 내용을 설명해 주시겠습니까? 감사이 C 코드 행을 이해할 수 없습니다.
그것은이 int
에 대한 포인터로 CV
캐스트는 역 참조는 포인터를했다, 그리고 int
지적-에 값 0
을 할당합니다.
Here's a demo. 또한 은 0
과 동일하므로 조금 더 간단하게 변경할 수 있습니다.
먼저 CV
을 int 포인터로 캐스팅 한 다음이 포인터로 지정된 정수를 0으로 설정합니다.
0
의 전송은 실제로 필요하지 않습니다.
당신은 종종 같은 상황에서 볼 :
void setIntWithVoidPtr (void *p) {
*((int*)p) = 42;
}
그들은 유형 int *
(int 형에 대한 포인터)에 변수 CV
을 주조하고, 다음 외부 *
와, 그것을 역 참조하고,에 할당 0
값이 int
으로 변환되었습니다. CV
, 그때 제 int *
역 참조로 주조되는 void *
이며 값이 비록 불필요 보인다 (int)0
int
0으로 설정된 것처럼
보인다.