열강 c프로그래밍 책보다 이해가잘안되서요 ㅜ
맨삶이
질문 제목 : 열강 c프로그래밍 책보다 이해가잘안되서요 ㅜ열강 c프로그래밍 책보다 이해가잘안되서요 ㅜ질문 내용 :
/* comma_op.c */
#include stdio.h
int main(void)
{
int a=1, b=2;
a++, b++;
printf(%d , a), printf(%d,b), printf(\n);
return 0;
}
코드를 이렇게짠뒤 실행하면 2 3 이출력되거든요..?
근데 a++은 선연산후 증가잖아요..?
예를들면
#include stdio.h
int main(void)
{
int val1=10;
int val2=10;
printf( 선연산후 증가: %d \n, val1++);
printf(다시 한번출력 : %d \n\n,val1);
출력: 10
11 이렇게 나오면 printf( 선연산후 증가: %d \n, val1++); 이부분은 선연산이니 10맞고
다시한번출력에서 후증가니 11나오잖아요 이거처럼 2줄로나눠서 하는것도아니고
int a=1, b=2;
a++ ,b++
printf(%d , a), printf(%d,b), printf(\n); 이렇게만 적어도 어쨰서
출력에 2 3 이나오는거죠? ( ) 이렇게 괄호안에 적혀 잇다는거만으로 선연산이 적용된거에요?
에구 쓰다보니 나도 못알아먹겟네요 ㅜ..
답변해주실분 부탁합니당.. 이해못하시겠으면 안하셔도됩니당 ㅜ
걍 2 3이구나하고 넘어가죵뭐 ..
-
상1큼한렩
아 그렇게되는거구나 감사합니다
-
Sweeety
싱글연산으로 끝난다면 (a++;b++;) 이 ++a ++b와 차이가 없다고 보시면 되겠네요
-
소심한녀자
수다님 말씀대로라면 c에는 순수한 b값인 3이들어가신다고하셨잖아요..
그런면 여기서도
int a=1, b=2;
a++, b++;
printf(\%d \ -
알찬바로
선연산은 변수값 자체값이 1이 바로 증가된후에 값이 대입되는것이고
후연산은 변수값이 먼저 대입되고 나서 자기자신이 1 증가된느것입니다.
즉..
int c; int b = 3;
c = b++; 이라면
b가 3이므로.. 먼저 c에 값이 대입되니다. 그럼 c에는 순수한 b값인 3이 들어가고
그리고 나서...자신의 값을 1 증가시킵니다. b--; 도 똑같은 이치 입니다. -
아이돌
음 그럼 무조건
printf() 에서는 ++a라던지 a++ 라던지 무조건 증가되서나오는건가요?
c언어장이님 말씀대로 그라인이 끝나고 나서야 실행된다는 말씀은
int a=1, b=2;
a++, b++;
printf(\%d \ -
꽃햇님
a++ 라는건 결국 a=a+1; 과 같은겁니다. 다만 a++라고 변수뒤에 붙여주는건 그 라인이 끝나고 나서야 실행된다는 겁니다. ++a 라고하면 먼저 1증가키시는거죠