🧼C, C++/기초및 입문

C언어 기초 #1 자료형

Mawile 2021. 1. 12.
728x90

c계열언어 강좌 총정리

 

C계열언어 강좌 총정리

{[ C문법 기초 ]} 자료형 #1 배열과 함수 #2 연산자 #3 구조체와 공용체 #4 (*) 매크로와 열거형 #5 다양한 키워드 #6 (*) 비트필드 #7 포인터 #8 (**) 전처리문 #9 (추후에 내용추가..) {[ C++문법 기초 ]} 표준

mawile.tistory.com


개발환경 >> Visual Studio Code

언어 >> C17

운영체제 >> Windows10

 


 

안녕하세요~

이번에 C->C++->C#순으로 강좌 이어나가보도록하겠습니다.

우선 저는 지금까지 입문이랑은 살짝 동떨어진 강좌를 올렸었는데 이러한

입문강좌를 시작하게된 동기는 두가지입니다.

첫번째는 개인공부,

두번쨰는 입문자분들에게 조금이라도 도움이되라는 마음에서 시작하겠습니다.

그럼 시작하겠습니다!

 

 


[ 자료형의 종류 ]

출처 : MSDN

 

C언어에서 자료형은 이렇게 분류되어있습니다.

대게 정수형 실수형 문자형입니다.

차례대로 알아보겠습니다.

 

 

[ 정수형 ]

#include <stdio.h> //printf() 함수사용

int main(){
	int Integer = 3; //int형변수에 3이라는 값을 저장
    printf("%d", Integer); //콘솔창에 출력, %d는 나중에 강좌에서 다루겠습니다.
}

결과값

위와 같이 3이라는 값이 나왔습니다.

정수형데이터란 우리가 흔히 수학에서사용하는 소수점이없는 수를 의미한다고 보시면됩니다.

3, 4, 6, 5등등...

 

[ 실수형 float ]

#include <stdio.h>  //printf() 함수사용

int main(){
	float PI = 3.14; //실수형데이터에 3.14라는 값저장
    printf("%f", PI); //출력 %f는 실수형데이터 포맷형식
}

결과값

결과값으로 이렇게나왔습니다.

하지만 float으로 다음과같은 실수를 넣으면 중간에 값이 더이상 바뀌지않거나 이상해지는것을 볼수가있습니다.

 

#include <stdio.h>

int main(){
	float PI = 3.14123123213999912312312313199998;
    printf("%.30f", PI); //.30은 소수점아래 30자리까지 표기하도록 명령
} 

중간에 값이 이상해졌다.

이럴때는 double을 사용해보세요

 

[ 실수형 double ]

#include <stdio.h>

int main(){
	double PI = 3.14123123213999912312312313199998; //8바이트 실수형
    printf("%.30lf", PI);
} 

결과값

잘보면 중간에 값이 끊기긴했지만 값이 정상적으로 출력된것을 볼수가있다.

하지만,,이렇게하면 소수점아래에 존재하는 값을 무한히 넣을수가없는거잖아요.

이와 관련된 문제는 나중에 C++자료구조 관련강좌를 진행할때 해결하는방법을 알려드리겠습니다.

 

[ 문자형 char ]

char은 사실 숫자로 되어있지만 문자로도 표기할수있습니다.

자료형 char에관해서 완벽히 숙지하기위해서는 ASCII라는 표기방식을 이해해야합니다.

이 표는 절대로 암기를 안해도 됩니다.

실제로 암기하는 사람은 거의 없을거예요.

 

 

ASCII코드 표기표

다음은 ASCII코드표입니다.

이 표를 실제 코딩할때 어떻게 보고 표기할수있을까요?

 

#include <stdio.h>

int main(){
    char ascii = 'a'; //문자형 데이터 'a'를 저장
    printf("%c %d", ascii, ascii); //첫번째 %c의 포맷형식은 단일문자표기형식입니다.
}

결과값

첫번째는 %c 단일문자로 포맷한것이고 두번째는 %d 정수형태로 포맷한것입니다.

똑같은 변수를 받았는데 왜 다를까요?

ASCII표기방식을 이해하면 바로알수있습니다.

위에 표를 보시면 97옆에 a가있는것을 보실수있는데 바로 이런점때문에 ASCII표기방식을 이해해야한다고 했습니다.

 

또는 이렇게 정수를 넣어서도 사용이 가능합니다.

 

 

#include <stdio.h>

int main(){
    char ascii = 97; //정수형 97
    printf("%c %d", ascii, ascii);
}

결과값

결과값은 보시다시피 똑같습니다.

왜냐하면 97이곧 'a'이고 'a'가 곧 97이기 때문입니다.

''는 뭐냐면 단일문자를 사용하고싶을때 쓰는겁니다.

왜냐하면 그냥

char ascii = a;

이런식으로 적어버리면 a라는것은 단일문자로의 'a'가아니라 변수 a가되는겁니다.

따라서 다음과 같이 a는 단일문자로서의 역할을 할 수 없습니다.

 

 

 


 

이번강좌는 프로그래밍을 하다보면 제일 많이쓰이는 자료형위주로 강좌를 진행했는데요.

다음에는 여러가지 라이브러리함수와 함께 배열과 함수정의에 대해서 설명하겠습니다.

 

감사합니다!

728x90

댓글