아래 코드를 작성하면 어떻게됩니까?C 프로그래밍 언어의 연산자 우선 순위
int arr[] = {6, 7, 8, 9, 10};
int *ptr = arr;
*(ptr++)+= 123;
이제 arr []의 요소는 무엇입니까?
나는 원래 arr []가 {6, 130, 8, 9, 10}이되어야하지만 결과는 {129, 7, 8, 9, 10}입니다. 왜 그런지 모르겠습니다.
필자 의견으로는 ptr ++가 대괄호 안에 있으므로 우선 ptr이 증가해야합니다. 그렇지 않습니까? 증가 된 후에는 배열의 두 번째 요소를 가리켜 야합니다.
간단하게 보면 알 수 있습니다. 'ptr ++'은 값 ('ptr'의 원래 값)과 부작용 (증분)을 가지고 있습니다. 값이 사용될 때와 관련하여 부작용이 발생하는 경우 언어에 의해 지정되지 않습니다. – pmg