C언어를 포함한 프로그래밍 언어에서 '=' 등호연산자는 "같다"라는 의미가 아니라 "대입"의 의미를 가집니다.
그래서 순서가 존재하는데 등호를 기준으로 오른쪽에 있는 값을 왼쪽에 넣는다는 의미가 됩니다.
if (s[i] > max) s[i] = max;
"의 경우는 s[i]에 max 값을 넣는다." 라는 의미가 되겠죠.
if (s[i] > max) max = s[i];
반대로 위의 경우는
"의 경우는 max에 s[i] 값을 넣는다." 라는 의미가 되겠죠.
그래서 결과가 달라지는 것입니다.
참고로 프로그래밍에서 "같다"를 표현하려면 "==" 등호연산자를 두개 사용하면 됩니다~
더 궁금한 점이 있다면, 대입 연산자를 구글링해서 공부하시면 이해가 훨씬 빠르게 될 것입니다.
mdl1220 2년 전 1
c언어 문제를 풀다가 최대값이 필요해서 위의 것처럼 썼는데 어디서 틀린지를 몰라 2시간동안 코드와 눈씨름 하다가 밑처럼 고쳤더니 드디어 풀렸습니다
c초보자 눈엔 똑같아 보이는데 왜 전혀 다르게 값이 나오는 걸까요?
이유를 가르쳐 주십시요ㅠㅠ