반응형
c언어에서 double 형식의 변수를 %d 로 받으면 계산을 할 때 오류가 납니다. (이상한 값 출력)
%lf 로 받아줘야지 정상적인 계산이 가능합니다.
마찬가지로 문자열을 %d 로 받으면 오류가 나고 %c 로 받아줘야지 정상적인 입력 및 출력이 가능해집니다.
나중에 볼려고 문자들을 정리해 보았습니다.
(8비트=1바이트,n은 각 자료형의 비트 크기)
자료형태 |
키워드 |
크기 | 문자 |
범위 |
문자형 |
char |
1바이트 | %c |
-2^(n-1)~2^(n-1)-1 |
정수형 |
short |
2바이트 | %d |
|
int |
4바이트 | %d |
||
|
|
|
||
long |
4바이트 | (붙이는 속성 L) |
||
실수형 |
float |
4바이트 | %f |
3.4e+-38 |
double |
8바이트 | %lf |
1.7e+-308 |
문자형 키워드나 정수형 키워드 앞에 unsigned를 붙이면 음수를 표현할 수 없다.
대신 양수에서 표현할 수 있는 범위가 2배 늘어난다. 하지만, 실수형 자료형에서는 unsigned를 붙일 수 없다.
예시)
1 2 3 4 5 6 7 8 9 10 11 12 | #include <stdio.h> int main() { int i; scanf("%x",&i); printf("%d",i); } | cs |
입력 : A
출력 : 10
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #include <stdio.h> int main() { char arr[10]={0}; fgets(arr,sizeof(arr),stdin); printf("%s\n",arr); for(int i=0;i<10;i++) { printf("%c",arr[i]); } } | cs |
입력 : asdf
출력 : asdf
asdf
1 2 3 4 5 6 7 8 | # include <stdio.h> int main() { long long i; scanf("%lld",&i); printf("%lld",i); } | cs |
입력 : 1234123412341234
출력 : 1234123412341234 (int 형의 최대값은 2^31-1 에 비해 long long의 최대값은 2^63-1 이다)
반응형
'프로그래밍 언어 > C C++' 카테고리의 다른 글
줄넘김 문자 endl , \n 차이 (0) | 2021.03.24 |
---|---|
gcc 를 이용해 c언어 간단히 컴파일하기 (0) | 2021.03.23 |
main 함수에 입력 변수 설정하기 (0) | 2021.03.03 |
C언어로 계산식을 이용한 원주율(파이) 구하기 (0) | 2019.06.03 |
c언어의 비트 연산 및 비트 연산자 (0) | 2019.04.30 |