처음으로 C 언어 배우는 초보입니다. 부끄럽지만 질문드려요
C프로그래밍 예제중
while문을 사용해서 출력할 단을 입력받고 역순으로 출력하는 예제입니다.
위 사진처럼 printf함수 인자의 i에다가 후위감소를 넣게 되면 8부터 0까지 출력이 되더라구용
후위 감소니깐 문장을 먼저 실행 한 뒤, 값을 감소 시키는거면 정상적으로 9부터 1까지 출력되어야 되지 않나요?
제가 잘못 알고 있는지 궁금해요 ㅠㅠ
처음으로 C 언어 배우는 초보입니다. 부끄럽지만 질문드려요
C프로그래밍 예제중
while문을 사용해서 출력할 단을 입력받고 역순으로 출력하는 예제입니다.
위 사진처럼 printf함수 인자의 i에다가 후위감소를 넣게 되면 8부터 0까지 출력이 되더라구용
후위 감소니깐 문장을 먼저 실행 한 뒤, 값을 감소 시키는거면 정상적으로 9부터 1까지 출력되어야 되지 않나요?
제가 잘못 알고 있는지 궁금해요 ㅠㅠ
인자는 뒤에서부터
후위 감소는 그 줄이 다 실행되고 감소하는게 아니라 i가 포함된 연산이 실행되고나서 감소하는거임 그런데 printf 함수에서 인자는 역순으로 계산되니까 저런 결과가 나온 거겠지?
따라서 dan, i--, dan * i 로 고치면 잘 나올거임
저렇게하면 또 7x9=56이렇게나올걸
해보고나 말하길
혹시나해서해봤는데 역시난데?
응 난 잘 나와
안되는걸된다하노 ㅋㅋ
되는걸 안된다하노 ㅋㅋ
진짜 빡대가리 많구나 ㅎ
해당 댓글은 삭제되었습니다.
while문만 배운상태에서 해볼려고 해요ㅠㅠ
아 인자는 뒤에서부터로 생각하니 이해됬어요!! 감사합니다 ^^
맨윗놈 말대로 인자는 뒤에서부터 실행되서 dan,i+1,dan*i-- 이렇게 하면 될거같은데
함수 호출 안에서 i와 i-- (--i든 뭐든)를 동시에 사용하는 코드는 잘못된 코드입니다. 자살하세요.
굳이 저런 식으로 짜고 싶다면 int i = 10;부터 시작해서 while (--i > 0)으로 하고 printf 안에서 i--를 하지 마세요 씨발
초고수