λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸ“šν”„λ‘œκ·Έλž˜λ°/πŸ”C

#3 - λ³€μˆ˜μ™€ μžλ£Œν˜• (1)

by ||MELON|| 2023. 12. 18.

 

코딩을 ν•œλ‹€λ©΄ ν•„μˆ˜μ μœΌλ‘œ ν•„μš”ν•œ μ‘΄μž¬κ°€ μžˆμŠ΅λ‹ˆλ‹€. λ°”λ‘œ λ³€μˆ˜(Variable)μž…λ‹ˆλ‹€. μ˜€λŠ˜μ€ 이 λ³€μˆ˜μ— λŒ€ν•΄ μ•Œμ•„λ΄…μ‹œλ‹€.

 

λ³€μˆ˜λŠ” 무언가λ₯Ό μ €μž₯ν•˜λŠ” 그릇 κ³Ό 같은 μ‘΄μž¬μž…λ‹ˆλ‹€. κ³§λ°”λ‘œ 예λ₯Ό λ“€μ–΄λ΄…μ‹œλ‹€.

#include <stdio.h>

int main(void)
{
	int A = 1;
	printf("%d", A);
}

 

μœ„ μ½”λ“œμ—μ„œλŠ” λ³€μˆ˜ A에 1을 λ‹΄μ•˜μŠ΅λ‹ˆλ‹€. 그리고 λ³€μˆ˜ μ•žμ—λŠ” int λΌλŠ” κΈ€μžκ°€ ν•¨κ»˜ λΆ™μ–΄μžˆμŠ΅λ‹ˆλ‹€. 이 intκ°€ λ°”λ‘œ μžλ£Œν˜• μž…λ‹ˆλ‹€. intν˜•μ˜ λ³€μˆ˜ A λ₯Ό μ„ μ–Έν•˜μ—¬ A 에 1을 담아라! 이런 이야기 μž…λ‹ˆλ‹€. μ•„ 이게 λ¬΄μŠ¨λ§μΌκΉŒμš”?

 

 

μžλ£Œν˜•

μžλ£Œν˜•μ΄λž€ λ³€μˆ˜λ₯Ό 담을 κ·Έλ¦‡μ˜ ν˜•νƒœλ₯Ό λ§ν•©λ‹ˆλ‹€. μš°λ¦¬κ°€ μ•„μ΄μŠ€ν¬λ¦Όμ€ 콘 μœ„μ— λ‹΄κ³ , 볢음λ°₯은 μ ‘μ‹œμ—, νƒλ°°λ¬Όν’ˆμ€ μ’…μ΄μƒμžμ— λ‹΄μŠ΅λ‹ˆλ‹€. 그런데 μ•„μ΄μŠ€ν¬λ¦Όμ„ μ’…μ΄μƒμžμ— λ‹΄κ³ , 볢음λ°₯을 콘 μœ„μ—, νƒλ°°λ¬Όν’ˆμ„ 콘 μœ„μ— λ‹΄λŠ”λ‹€λ©΄.. λ­”κ°€ μ΄μƒν•˜μ£ ?

μ΄λŸ°μ‹μœΌλ‘œ λ³€μˆ˜λ„ μ’…λ₯˜κ°€ μ •ν•΄μ Έ 있고, κ·Έ μ’…λ₯˜μ— 따라 담을것듀도 μ •ν•΄μ Έ μžˆμŠ΅λ‹ˆλ‹€.

 

μœ„μ—μ„œ 닀룬 intλŠ” λ°”λ‘œ μ •μˆ˜ν˜• μž…λ‹ˆλ‹€. intν˜•μœΌλ‘œ μ„ μ–Έλœ λ³€μˆ˜λŠ” μ˜€λ‘œμ§€ μ •μˆ˜λ§Œ 담을 수 μžˆμŠ΅λ‹ˆλ‹€. λ§Œμ•½ μ‹€μˆ˜ 0.1을 λ‹΄λŠ”λ‹€λ©΄ 좜λ ₯이 λ‚˜μ˜¬κΉŒμš”? 좜λ ₯은 μ •μƒμ μœΌλ‘œ λ‚˜μ˜€μ§€λ§Œ, μš°λ¦¬κ°€ μ›ν•˜λŠ” 값이 λ‚˜μ˜€μ§€λŠ” μ•ŠμŠ΅λ‹ˆλ‹€. 마치 μ•„μ΄μŠ€ν¬λ¦Όμ„ μ’…μ΄μƒμž μ•ˆμ— λ‹΄μ•˜μ§€λ§Œ, λ¨Ήμ„μˆ˜λŠ” μžˆλŠ” 것 μ²˜λŸΌμš”.

 

그럼 μžλ£Œν˜•μ˜ μ’…λ₯˜λŠ” 무엇이 μžˆμ„κΉŒμš”? μ•„μ£Ό 크게 λ‚˜λˆ„μžλ©΄ int, float, char 둜 λ‚˜λˆŒ 수 μžˆμŠ΅λ‹ˆλ‹€. 이것듀은 무엇을 μ˜λ―Έν• κΉŒμš”?

 

int λŠ” μ •μˆ˜ν˜•μ„ μ˜λ―Έν•©λ‹ˆλ‹€. 말 κ·ΈλŒ€λ‘œ μ •μˆ˜ν˜• λ°μ΄ν„°λ§Œ 담을 수 μžˆμŠ΅λ‹ˆλ‹€. 0,1,2,3...100...1234... 이런 μˆ«μžλ“€μ„ λ§ν•©λ‹ˆλ‹€.

floatλŠ” μ‹€μˆ˜ν˜•μ„ μ˜λ―Έν•©λ‹ˆλ‹€. μ˜€λ‘œμ§€ μ†Œμˆ˜λ°μ΄ν„°λ§Œ 담을 수 μžˆμŠ΅λ‹ˆλ‹€. 0.1, 0.0032, 0.00321... 이런 μˆ«μžλ“€μ„ λ§ν•©λ‹ˆλ‹€.

charλŠ” λ¬Έμžν˜•μ„ μ˜λ―Έν•©λ‹ˆλ‹€. μ˜€λ‘œμ§€ 문자만 담을 수 μžˆμŠ΅λ‹ˆλ‹€. A, a, 1, 3, 4, 0, b, B.... μ΄λŸ°κ²ƒλ“€μ„ λ§ν•©λ‹ˆλ‹€.

 

근데 char에 μ–΄μ§Έμ„œ μ •μˆ˜κ°€ λ“€μ–΄κ°ˆ 수 μžˆλƒκ³ μš”? 1, 2, 4... 와 같은 μˆ«μžλ“€μ€ 숫자이기 전에, λ¬Έμžμž…λ‹ˆλ‹€. λ•Œλ¬Έμ— char ν˜• λ³€μˆ˜μ— 숫자 1을 λ‹΄λŠ”λ‹€λ©΄ κ·Έ μˆ«μžλŠ” λ¬Έμžκ°€ λ©λ‹ˆλ‹€. 이것은 무엇을 μ˜λ―Έν• κΉŒμš”?

 

#include <stdio.h>

int main(void)
{
	char A = 1;
	int B = 1;
    
	printf("%d", A + B);
}

 

이 μ½”λ“œμ—μ„œ μ •μƒμ μœΌλ‘œ 좜λ ₯이 λ‚˜μ˜¬κΉŒμš”? μ ˆλŒ€ κ·Έλ ‡μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

λ¬Έμžμ™€ μˆ«μžλŠ” μ„œλ‘œ μ—°μ‚°ν•  수 μ—†μŠ΅λ‹ˆλ‹€. 문자 1κ³Ό 숫자1을 λ”ν•˜λŠ”κ²ƒμ€ 말이 λ˜μ§€ μ•Šμ£ . μ΄λ‘€μ μœΌλ‘œ νŒŒμ΄μ¬μ—μ„œλŠ” 숫자1κ³Ό 문자 1을 λ”ν•˜λ©΄ 11이 λ‚˜μ˜΅λ‹ˆλ‹€.

λ³€μˆ˜

λ³€μˆ˜λŠ” 선언을 ν•΄μ•Ό ν•©λ‹ˆλ‹€. μ„ μ–Έμ΄λž€ λ‚˜ 이거 μ“Έκ±°μ•Ό! 라고 ν†΅λ³΄ν•˜λŠ” 것을 λ§ν•©λ‹ˆλ‹€. 예λ₯Ό ν•˜λ‚˜ 듀어보죠.

#include <stdio.h>

int main(void)
{
	printf("%d", A);
}

 

μœ„ μ½”λ“œλŠ” λ™μž‘ν• κΉŒμš”? μ ˆλŒ€ λ™μž‘ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ΄μœ λŠ” μš°λ¦¬κ°€ 좜λ ₯ν•  λ³€μˆ˜ Aκ°€ 선언이 λ˜μ–΄μžˆμ§€ μ•ŠκΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€. 그리고 λ³€μˆ˜μ— 값도 λ‹΄κ²¨μžˆμ§€ μ•Šκ³ μš”.

 

#include <stdio.h>

int main(void)
{
	int A = 1;
	printf("%d", A);
}

 

μ΄λ ‡κ²Œ μ½”λ“œλ₯Ό μˆ˜μ •ν•œλ‹€λ©΄ μ˜¬λ°”λ₯Έ 좜λ ₯이 λ‚˜μ˜΅λ‹ˆλ‹€.

 

#include <stdio.h>

int main(void)
{
	int A = 0;
	A = 5;
    
	printf("%d", A);
}

 

λ³€μˆ˜λŠ” ν•œλ²ˆ μ„ μ–Έν•˜λ©΄ 더이상 μžλ£Œν˜•μ„ 뢙이지 μ•Šμ•„λ„ λ©λ‹ˆλ‹€. μœ„ μ½”λ“œμ—μ„œλ„ 보이듯이, int A λ³€μˆ˜λ₯Ό μ„ μ–Έν•œ λ’€ A = 5 λΌλŠ” ν˜•νƒœλ‘œ 값을 λ°”κΎΈκ³  μžˆμŠ΅λ‹ˆλ‹€. 좜λ ₯은 μ •μƒμ μœΌλ‘œ 5 κ°€ λ‚˜μ˜€κ²Œ λ©λ‹ˆλ‹€.

 

 

 

이번 ν¬μŠ€νŒ…μ—μ„œ μžλ£Œν˜•κ³Ό λ³€μˆ˜μ— λŒ€ν•΄μ„œ μ•Œμ•„λ³΄μ•˜μŠ΅λ‹ˆλ‹€. 사싀 μžλ£Œν˜•μ€ 아직 λ°°μšΈκ²ƒμ΄ λ‚¨μ•„μžˆμŠ΅λ‹ˆλ‹€. 더 μžμ„Έν•œ λ‚΄μš©μ€ λ‹€μŒ ν¬μŠ€νŒ…μ—μ„œ μ•Œμ•„λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€. κ°μ‚¬ν•©λ‹ˆλ‹€.

λŒ“κΈ€