5
나는 C에서 포인터를 배우고
아래에서 작동하고 어떻게포인터 할당과 증가가 예를
int main()
{
int x=30, *y, *z;
y=&x;
z=y;
*y++=*z++;
x++;
printf("x=%d, y=%p, z=%p\n", x, y, z);
return 0;
}
출력
x=31, y=0x7ffd6c3e1e70, z=0x7ffd6c3e1e70
y
및 z
약 조금 혼란 스러워요 변수 x
의 다음 정수 주소를 가리 킵니다. 이 라인은
*y++=*z++;
사람이 한 줄이 C 이해하는 방법을 설명해 주시기 바랍니다 수있는 작업 방법 이해 할 수없는 무엇입니까?
하위 작업의 순서가 미리 결정되지 않은 것을 제외하고. – pmg
@pmg 당신 말이 맞습니다. 그 상황에 대한 모범이 있습니까? 나는 그것에 대해 읽는 것을 좋아합니다. – cokceken
@pgm : 중요한 것은 컴파일러가 최종 두 문장을 재정렬 할 수 있다는 것입니다. – Bathsheba