본문으로 바로가기

[C언어] 변수

category C 2014. 5. 2. 14:55

변수의 사전적 의미

①주어진 값들의 집합 중 임의의 것으로 가정할 수 있는 양(ISO). 
②프로그램 작성에서 값을 나타내는 문자나 문자들의 집합. 컴퓨터 프로그램의 실행 중에는 주소에 대응한다(ANSI). 
③어떤 값을 갖는 기호 표시(이름). 이 값은 프로그램을 실행할 때마다, 또는 프로그램 내의 단계에 따라 변할 수 있다. 예를 들어, 다음 문장에서 I와 K는 변수이다.
K=3+I

F(x) = 2x + 1

2, 1은 상수(고정된 값)

x 는 변수(변하는 값)

 

 

변수(Variable)란 무엇인가?
데이터를 저장할 수 있는 메모리 공간에 붙여진 이름

메모리에 데이터를 저장하기 위해서는 주소값을 이용해야하나 너무나 불편하므로 편리하게 데이터를 저장할 수 있게 변수를 사용할 수 있다.

 

변수의 선언

[Data Type] [Variable Name];

예)

int a; // 메모리 공간에 4바이트 만큼 공간을 할당하고 정수형태로 저장한다.

float b; // 메모리 공간에 4바이트 만큼 공간을 할당하고 실수형태로 저장한다.

 

변수의 주소

변수이름 앞에 &(ampersand)를 붙이면 그 변수의 메모리 주소값을 나타낸다.

예)

int a = 1;

&a // 변수 a 의 주소값이다.

 


 

1001

 

1002

 

1003

&a

1004

 

1005

 

1006

 

1007

 

1008

 

1009

 

1010

 

 

 

 

0000

0000

0000

0001

 

 

 

 

 

 

 

a

 

 

 

 

 

 

예)

#include <stdio.h>
void main()
{
    bool a;
    char b;
    short c;
    int d;
    float e;
    double f;
    __int64 g;
 printf("bool:%d    a:%d\n", sizeof(bool), sizeof(a));
 printf("char:%d    b:%d\n", sizeof(char), sizeof(b));
 printf("short:%d   c:%d\n", sizeof(short), sizeof(c));
 printf("int:%d     d:%d\n", sizeof(int), sizeof(d));
 printf("float:%d   e:%d\n", sizeof(float), sizeof(e));
 printf("double:%d  f:%d\n", sizeof(double), sizeof(f));
 printf("__int64:%d g:%d\n", sizeof(__int64), sizeof(g));
}

 

결과값

bool:1    a:1
char:1    b:1
short:2   c:2
int:4     d:4
float:4   e:4
double:8  f:8
__int64:8 g:8

 

참조만 하세요!

#include <stdio.h>
#include <stdlib.h>
void main()
{
    bool a = true;
    char b = 'a';
    short c = 1;
    int d = 123456789;
    float e = 3.14;
    double f= 3.141592654;
    __int64 g = 1234567890000;
 printf("bool:%d     a'size:%d   &a:%p   a:%d\n", sizeof(bool), sizeof(a), &a, a);
 printf("char:%d     b'size:%d   &b:%p   b:%d\n", sizeof(char), sizeof(b), &b, b);
 printf("short:%d    c'size:%d   &c:%p   c:%d\n", sizeof(short), sizeof(c), &c, c);
 printf("int:%d      d'size:%d   &d:%p   d:%d\n", sizeof(int), sizeof(d), &d, d);
 printf("float:%d    e'size:%d   &e:%p   e:%f\n", sizeof(float), sizeof(e), &e, e);
 printf("double:%d   f'size:%d   &d:%p   f:%f\n", sizeof(double), sizeof(f), &f, f);
 char digit64[100];
 _i64toa(g, digit64, 10);
 printf("__int64:%d  g'size:%d   &g:%p   g:%s\n", sizeof(__int64), sizeof(g), &g, digit64);
}

결과값

bool:1     a'size:1   &a:0012FED7   a:1
char:1     b'size:1   &b:0012FECB   b:97
short:2    c'size:2   &c:0012FEBC   c:1
int:4      d'size:4   &d:0012FEB0   d:123456789
float:4    e'size:4   &e:0012FEA4   e:3.140000
double:8   f'size:8   &d:0012FE94   f:3.141593
__int64:8  g'size:8   &g:0012FE84   g:1234567890000