BASIC4MCU | 질문게시판 | c언어 질문
페이지 정보
작성자 master 작성일2018-08-09 14:32 조회7,702회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=2714
본문
#include <stdio.h>int main(void)
{
char num1=1, num2=2, result1=0;
short num3=300, num4=400, result2=0;printf("size of num1 & num2: %d, %d \n", sizeof(num1), sizeof(num2));
printf("size of num3 & num4: %d, %d \n", sizeof(num3), sizeof(num4));
printf("size of char add: %d \n", sizeof(num1+num2));
printf("size of short add: %d, %d \n", sizeof(num3+num4));result1=num1+num2;
result2=num3+num4;
printf("size of result1 & result2: %d, %d \n", sizeof(result1), sizeof(result2));
return 0;
}과 값이size of num 1 & num2 :1,1size of num 3 & num4 :2,2size of char add: 4size of short add: 4size of result1 & result2 : 1, 2이렇게인데 첫번째는 char가 1바이트 여서 1,1이고 두번째줄은 short 가 2바이트여서 2,2인건아는데 3번째 둘이 더하니까 2가 되어야되는거아닌가요? 그리고 5번째줄은 결과가 왜 1,2인지설명해주시면 감사하겠습니다. 확실히아는분만 알려주세요 애매하게아는분 뒤로가기 해주세요//
printf("size of char add: %d \n", sizeof(num1+num2)); <-- 4
printf("size of short add: %d, %d \n", sizeof(num3+num4)); <-- 4인수 넣는 곳에서 연산을 하기 때문에 printf 기본 인수형인 int가 적용되서 4바이트 크기를 출력한 겁니다.자동형변환 되었다고 생각하시면 되고요
char num1=1, num2=2, num5, result1=0;short num3=300, num4=400, num6, result2=0;num5=num1+num2;printf("size of char add: %d \n", sizeof(num5)); <-- 1num6=num3+num4;printf("size of short add: %d, %d \n", sizeof(num6)); <-- 2미리 연산을 하고서 출력하면 데이터형 크기를 출력하죠
댓글 0
조회수 7,702등록된 댓글이 없습니다.