728x90 반응형 증감연산자1 배열 주소에 증감 연산자 사용은 왜 안될까? 1. 예상되는 상황 #define _CRT_SECURE_NO_WARNINGS #include #include int main() { char str[32]; scanf_s("%s", str, 32); for (int i = 0; i < strlen(str); i++) { printf("%c\n", *str++); } return 0; } 배열은 포인터로 바꿔 표현할 수도 있으니까 *(str+i)와 같은 형식으로도 작성이 가능하니 *str++해도 될 것 같다고 생각했다. 하지만 위 코드를 실행해보면 *str++에서 컴파일러 오류로 확인된다. 왜그럴까? 2. 원인 배열을 포인터 표현으로 바꿔 사용할 때 주의할 점이 있다. 배열은 컴파일러에 의해 BP를 기준으로 상대적 위치 표현으로 변경되는 문법이다. 따라서.. 2023. 4. 7. 이전 1 다음 728x90 반응형