상세 컨텐츠

본문 제목

[CS기초] [C언어] 변수

개발기록/CS

by 도리(Dory) 2025. 11. 28. 15:31

본문

변수

 

 

변수 선언

메모리에 저장공간 마련하기

 

 

변수의 초기화

그 저장공간안에 있던 garbage value 를 원하는 값으로 바꾼다.

 

 

변수 대입(값 복사)

아래의 C 코드에서 a, b, c 를 각각 두 번 출력한다.

 

첫번째 출력 때는,

 

a = 10

b = 10

c = 20

 

이 출력될 것이다.

 

근데 a의 값을 5로 변경한 후 다시 각 변수의 값을 출력하면?

어떤 값들이 출력될지 예상해보자.

 

#include <stdio.h>

int main(void)
{
	
    int a;
    int b, c;
    
    a = 10;
    b = a;
    c = a + 10;
    
    // 각 변수 값 확인
    printf("a = %d\n", a);
    printf("b = %d\n", b);
    printf("c = %d\n", c);
    
    // a 변경 후 각 변수 값 확인 
    a= 5;
    
    printf("a = %d\n", a);
    printf("b = %d\n", b);
    printf("c = %d\n", c);
}

 

 

정답은..

 

a = 5

b = 10

c = 20

 

이 될 것이다.

 

왜냐하면, 위 코드에서

 

b = a;

 

a의 현재 값을 복사해서 b에 넣는다는 뜻이기 때문이다.

 

여기서 덤으로 파이썬은 항상 '참조 복사'를 하고,

C#은 자료형에 따라 int, float, bool, struct 등은 값 복사 / class, array, string, object는 참조 복사를 한다.

 

또한, C에서 참조복사를 쓰려면 그 유명한 포인터를 사용해야한다!!

관련글 더보기