안녕하세요.
1)
printf(" ")에서 " " 안에 콤마를 표시해도 되고 안해도 됩니다.
콤마를 넣으면 콤마도 함께 출력이 되고 콤마를 넣지 않으면 콤마 없이 서식 문자열에 대응되는 변수의 값만 표시됩니다.
78쪽과 같이 printf("%d %p %d\n", a, b, *b); 와 같이 지정하면 " " 안에 콤마가 없으므로 %d %p %d 사이에 공백 한 칸씩만 떨어지므로
30 0020FC21 30 으로 출력됩니다. 교재에 콤마(,)가 표시되어 혼동되신 것 같습니다. 학습에 불편을 드려 죄송합니다. 수정하도록 하겠습니다.
2)
일반 변수의 주소를 지정할 때는 &를 사용합니다.
78쪽에서 a는 정수형 변수이므로 주소를 지정할 때 &a를 사용했습니다.
하지만 80쪽의 a는 배열의 대표명입니다. 배열의 대표명은 해당 배열의 시작 위치, 즉 시작 주소를 기억하고 있으므로 굳이 &를 사용하지 않아도 주소가 지정됩니다. 그래서 배열의 대표명의 주소를 지정할 때는 & 없이 사용합니다.
오늘도 즐거운 하루 되세요.
-
*2017-06-12 09:54:36
안녕하세요.
1)
printf(" ")에서 " " 안에 콤마를 표시해도 되고 안해도 됩니다.
콤마를 넣으면 콤마도 함께 출력이 되고 콤마를 넣지 않으면 콤마 없이 서식 문자열에 대응되는 변수의 값만 표시됩니다.
78쪽과 같이 printf("%d %p %d\n", a, b, *b); 와 같이 지정하면 " " 안에 콤마가 없으므로 %d %p %d 사이에 공백 한 칸씩만 떨어지므로
30 0020FC21 30 으로 출력됩니다. 교재에 콤마(,)가 표시되어 혼동되신 것 같습니다. 학습에 불편을 드려 죄송합니다. 수정하도록 하겠습니다.
2)
일반 변수의 주소를 지정할 때는 &를 사용합니다.
78쪽에서 a는 정수형 변수이므로 주소를 지정할 때 &a를 사용했습니다.
하지만 80쪽의 a는 배열의 대표명입니다. 배열의 대표명은 해당 배열의 시작 위치, 즉 시작 주소를 기억하고 있으므로 굳이 &를 사용하지 않아도 주소가 지정됩니다. 그래서 배열의 대표명의 주소를 지정할 때는 & 없이 사용합니다.
오늘도 즐거운 하루 되세요.