C언어에서 데이터란?

C언어 데이터란? 2015. 4. 21. 09:00 Posted by 네트동자

앞서 우리는 '변수'를 '데이터를 저장하는 메모리 공간'이라고 정의했다.


      변수 : 데이터를 저장하는 메모리공간.

결국 변수 : 데이터를 저장하게 된다.(메모리 공간에 데이터를 집어넣으니까)



그럼, 도대체 데이터란 무엇일까?

무수히 많은 정의가 있을 것이다.

그러나, 우리는 단순하게 이번에는 단순하게 생각하자.

바로,


'변수'에 저장되는 값이 '데이터'라고.


변수에 저장되는 값 : 데이터.



데이터 : 

- 게임사이트의 개인정보

- 은행의 잔고

- 지갑 속의 금액

- 학번

- 나이 등 etc...

- 수치

- 문자


데이터를 저장하기 위해서는 "메모리 공간"이 꼭 필요하다.


이제, 다음에 나오는 예제를 천천히 살펴보며 이해해보도록 하자.


01: #include <stdio.h>

02: int main(void)

03: {

04: int a;                 //정수형 변수 a(메모리 공간 a)

05: int b;           

06:

07: printf("%d \n", a);

08: printf("%d \n", b);

09:

10: return 0;

11: }



자!

이제, 위의 예제를 실행해보자.








다음과 같이 위의 예제를 실행해보면 이상한 결과값이 나온다.

순간, 당황 -_-;

<무시>를 클릭하고 출력했을 때의 값이다.


어째서, 왜, 이러한 의미없는 값들이 출력되었을까?

그 이유는 다음과 같다.


04행에서

05행에서 변수 a와 변수b를 만들었다.

그리고~! 그후에, 변수에 데이터를 초기화하지 않았기때문이다.

다시 한번 강조하지만, 컴퓨터 프로그래밍을 할 때에는 변수(메모리 공간) 초기화가 

꼭 필요하고, 중요하다.







07: printf("%d \n", a);

08: printf("%d \n", b);


07행과 08행은 변수 a와 b에 저장된 값을 출력한다.

이들 변수 a와 b에 저장된 값이 없어서 '변수'를 출력하면 '아무의미없는 값'(일명 쓰레기값)이 결과로 출력된 것이다.



만일, 여러분들 중에서 변수 a와 b에 아무것도 저장된 데이타(값)이 없으니까

07행과 08행을 출력하면 0(zero)가 나와야 한다고 생각할 수 있다.


그러나, 당신의 그러한 생각은 전적으로 틀렸다.

왜냐하면, 바로 0(zero)도 엄연히 0(zero)라는 일종의 데이터이기 때문이다.


이제 다음 장에서 또다른 예제를 연습해보기로 하자. 










No.02 변수 선언 방법.

C언어 변수란? 2015. 4. 21. 09:00 Posted by 네트동자

변수는 크게 2 가지 형태로 분류된다.


- 정수형 변수

  정수를 저장하는 변수로 char형, short형, int형, long형이 있다.

  이러한 변수 형태를 정수형 자료형이라고 한다.



- 실수형 변수

  실수(소숫점이 있는 값)를 저장하는 변수로 float형, double형, long double형이 있습니다.

  이러한 형태를 실수형 자료형이라고 한다.


이렇게 분류한 이유는 나중에 살펴보기로 한다.

일단, 변수의 형태는 다양하다.


다음, 예제는 

<정수형 변수>와 <실수형 변수>를 선언한 코딩이다.


01: #include <stdio.h>

02: int main(void)

03: {

04: int a;    //정수형 변수 선언

05: float b;  //실수형 변수 선언

06:

07: return 0;

08:}


4행부터 5행까지에서 int형 변수 (정수형 변수) , float형 변수 (실수형 변수)를

개별적으로 선언해주는 코딩이다.



이와 비슷한 다음 예제도 살펴보자.

01: #include <stdio.h>

02:int main(void)

03:{

04: int a, b;

05: float c, d;

06:

07: return 0;

08:}


04행과 05행에서 int형 변수와 float형 변수를 동시에 두개를 선언하고 있다.

변수의 형태가 같다면 04행처럼 'int a,b' 라고 쓸 수 있고,

                        05행처럼 'float c, d'로 쓸 수 있다.     








  

No.01 변수에 대한 기본적인 이해.

C언어 변수란? 2015. 4. 21. 09:00 Posted by 네트동자

마트에서 사용한 카트 : 물품을 담아두는 임시 저장 공간.

프로그램에서의 카트 : 그것이 바로 변수와 같은 의미라 생각하면 된다.


변수 : 데이터를 저장하는 '임시저장공간'

그러므로, '임시저장공간(변수)'에 저장되는 물품(카트에 담긴 내용물)(다시말해 데이터)가

여러가지 목적에 따라서 다양한 것을 저장 할 수 있다.






exercise-2 연습문제.

연습문제 2015. 4. 21. 09:00 Posted by 네트동자

자신의 이름과 학번을 한 줄로 화면에 출력하는 C프로그램을 작성하라.


- 일단 한번 혼자 고민해 보세요.

  다음 장에 답을 달아놓았습니다.

  그러나, 프로그램을 만드는 코딩에 정답은 없습니다.

  여러분만의 정답이 나오면 그게 바로 여러분의 실력이 되겠죠.

exercise-1 [정답]

연습문제 2015. 4. 20. 09:30 Posted by 네트동자

/* 연습문제 5*/


#include <stdio.h>

int main(void)

{

int a, b;


printf("두 정수를 입력하세요 : ");


scanf("%d %d", &a, &b);                 

/*필자는 이 부분에서 많이 고민했다. 두 정수를 입력하는 것 자체에서 솔직히 헷갈렸던 것이다. 이 부분이 풀리자 순식간에 연습문제를 풀 수 있었다.*/


printf("두 정수의 합 : %d \n", a + b);

printf("두 정수의 차 : %d \n", a - b);


return 0;

}




<결과값>




exercise-1 숫자의 합과 차

연습문제 2015. 4. 20. 09:00 Posted by 네트동자

exercise-1

두 정수를 입력받아 두 숫자의 합과 차를 출력하는 프로그램을 만들라.


단, 출력결과는 다음의 형식을 따른다.

출력되는 모든 숫자는 소스코드에 직접 작성해서는 안되고, 숫자 입력 방식을 통해 

결과물을 도출하라.



- 혼자서 충분히 고민해 보세요 (정답은 다음 페이지에 있습니다)

01: #include <stdio.h>

02: int main(void)

03: {

04: float f1, f2;

05: double d1, d2;

06:

07: printf("float형 실수 두개 입력 : ");

08: scanf("%f %e", &f1, &f2);

09: printf("float형 실수 출력 : f1=%f, f2=%e \n", f1, f2);

10:

11:

12: printf("double형 실수 두 개 입력 : ");

13: scanf("%lf %le", &d1, &d2);

14: printf("double형 실수 출력 : d1=%lf, d2=%le \n\n\n\n", d1, d2);

15:

16: return 0;

17: }



04행에서 실수 데이터를 저장하기 위해서 변수 f1, f2 를 float 형으로 선언합니다.

05행에서 실수 데이터를 저장하기 위해서 변수d1, d2 를 double 형으로 선언합니다.

--- 실수형 변수는 보통 double 형을 많이 쓴다.


< int 형,  float 형,  double 형 변수>들에 대한 자세한 사항에 대해서는 나중에 설명하겠다.



08행에서 서식문자 %f와 %e 를 통해서 키보드로부터 두 개의 실수를 각각 입력받아 

           변수 f1과 f2에 저장한다

09행에서 f1과 f2에 저장된 데이터를 %f와 %e를 사용하여 출력합니다.


'C언어 기초' 카테고리의 다른 글

C언어가 실수를 기억하는 방법?  (0) 2015.04.28
No.19 scanf( ) 함수 예제.  (0) 2015.04.18
No.18 서식 문자.  (0) 2015.04.17
No.17 scanf( ) 함수 예제  (0) 2015.04.17
No.16 scanf() 함수의 기본 구조  (0) 2015.04.17

No.19 scanf( ) 함수 예제.

C언어 기초 2015. 4. 18. 09:00 Posted by 네트동자

01: #include <stdio.h>

02: int main(void)

03: {

04: int a, b, c;

05:

06: printf("10진수 정수 1개 입력: ");

07: scanf("%d", &a);

08: printf("10진수 : %d, 16진수 : %x, 8진수 : %o \n", a, a, a);

09:

10: printf("16진수 정수 1개 입력 : ");

11: scanf("%x", &b);

12: printf("10진수 : %d, 16진수: %x, 8진수 : %o \n", b, b, b);

13:

14: printf("8진수 정수 1개 입력 :");

15: scanf("%o", &c);

16: printf("10진수 : %d, 16진수 : %x, 8진수 : %o \n\n\n",b , b, b);

17:

18: return 0;

19:

20: }



결과값



04행에서 정수 데이터를 저장하기 위해 변수 a, b, c 를  int형으로 선언합니다.

정수형 변수는 int 을 많이 사용합니다.

변수에 대해서는 다음에 더 자세히 이야기 하겠습니다.


07행에서 10진수 정수(%d) 한 개를 키보드로 입력받아 변수 a에 저장합니다.

08행에서 변수 a 에 저장된 값을 각각 10진수, 16진수, 8진수로 출력한다.


11행에서 16진수 정수(%x) 한 개를 키보드로부터 입력받아 변수 b에 저장한다.

12행부터는 저장된 값을 각각 10진수, 16진수, 8진수로 출력한다.


15행에서 8진수 정수(%o) 한 개를 키보드로 입력받아 변수 c에 저장한다.

16행에서는 저장된 값을 각각 10진수, 16진수, 8진수로 출력된다.




위의 예제는 정수 값을 입력할 때 사용하는 '서식문자' 들이다.


다음 Chapter 에서는 

'실수'값을 입력할 때 사용하는 '서식문자'에 관해 공부해보자.









No.18 서식 문자.

C언어 기초 2015. 4. 17. 09:00 Posted by 네트동자

scanf( ) 함수의 f도 

printf( ) 함수에서처럼 'formatted' 서식화된 의미로 같은 서식문자를 사용한다.


즉,

10진수 정수, 8진수 정수, 16진수 정수, 실수, 문자, 문자열 등을 입력받을 수 있다.


입력 서식문자에 대한 자세한 내용은 다음 표에 기재되어 있으니 참고하세요.^^


 서식 문자

   입력 형태

 %d

  10진수 정수 입력

 %x

  16진수 정수 입력

 %o

   8진수 정수 입력

  %f 

  float형 실수 입력

 %lf

  double형 실수 입력

 %c

  한 개의 문자 입력

 %s

  문자열 입력

 %u

  10진수 정수 (양수만 표현가능) 입력

 %e 

  float형 e 표기법에 의한 실수 입력

 %le 

  double형 e 표기법에 의한 실수 입력



No.17 scanf( ) 함수 예제

C언어 기초 2015. 4. 17. 09:00 Posted by 네트동자

01: #include <stdio.h>

02: int main(void)

03: {

04: int age;

05: printf("What is your age? : ");

06: scanf("%d", &age);

07: printf("Wow! Really? Are you %d years old? \n\n\n", age);

08:

09: return 0;

10: }



04행에서 age는 

06행의 

scanf( ) 함수에서 입력받은 데이터를 저장하기 위해서 선언된 변수 (임시 저장 공간) 이다.



궁금한 점.

왜,             scanf("%d", age) 라고 하지 않고

                scanf("%d", &age) 라고 age 앞에 &을 붙여줄까?


간단히 설명해보겠다.

               &age는 변수 age 를 위해 할당된 메모리의 주소를 의미한다.


 scanf("%d", &age) 라는 표현은 10진수 Data를 입력받아서 

                '변수 age의 메모리 주소'에 '입력값'을 저장하라는 의미이다.


한마디로 말해서 이런거다.

당신이 택배(Data)를 받을 때, 어떻게 해야 택배를 받을 수 있는가 ? 

바로 '주소'가 있어야 '택배'를 받을 수 있다.


이때, 택배는 10진수 data이고,

      주소는 &age를 의미한다.

즉, 10진수 data가 도달해야 할 주소 &age 를 의미한다.



 


               

'C언어 기초' 카테고리의 다른 글

No.19 scanf( ) 함수 예제.  (0) 2015.04.18
No.18 서식 문자.  (0) 2015.04.17
No.16 scanf() 함수의 기본 구조  (0) 2015.04.17
15번째- 키보드의 데이터 입력 - scanf( ) 함수  (0) 2015.04.16
14번째 - 필드 폭 지정.  (0) 2015.04.16