💻 Computer Science/C++ 정복기 🐧

[C++] 정수형, 실수형, 문자형 변수, + 상수선언

노가다 권씨 2024. 5. 8. 15:59
728x90
반응형

C++에서 변수를 선언할때는 python과 다르게 이 변수의 유형을 반드시 명시해줘야한다. 유형이라함은... 정수형인지 실수형인지 문자형인지.. 정확히 선언을 하고 시작해야한다는 것이다. 

선언할때 유형을 명시하는것, 선언 방식을 제외하고는 변수의 사용은 python과 크게 다를게 없어보인다.

 

#include<stdio.h>

main()
{
	int x=5;
	double k=3.1415;
	char name[]="김성철";

	
	printf("정수형변수 x의 값은 %d\n",x); 
	printf("실수형변수 k의 값은 %f\n",k);
	printf("문자형변수 name의 값은 %s",name); 
}

한줄한줄 천천히 보자. 

#include<stdio.h> -> python에서 import ~~와 같이 모듈을 불러오는 느낌? 그정도 역할이라고 생각하면된다. 아니, 무슨모듈을 불러오는데? -> C++은 python과 다르게 기본적인 출력문.. 예를들어 printf도 직접 불러와서 사용해야한다. 만약 이 구문이 없이 그냥 printf를 쓴다면?

'printf' 라는 명령어가 declared 되지 않았다는 에러구문을 볼수있을것이다. C++에선 print 하나도 꽁으로 먹을수없다

 

main()은 함수인데 C++은 main함수로 시작되어 main함수로 종료된다. 구문은 반드시 하나의 main함수를 포함해야한다. 일단 받아들이자. 

main함수에 종속되는 파트는 모두 중괄호 { }로 묶여있다. 이 안에 우리가 실행할 구문을 입력하면된다.추가로. 함수에 종속되는것이므로 들여쓰기해줘야한다.

 

이제 위에서 구구절절히 설명한 변수선언이다. python에선 x=5, k=3.1415, name='김성철'.... 그냥 해버리면되는것을 C++에선 변수유형도 앞에 정의해준다. int x -> x는 정수형(int)이다. double는 실수형 (python에서 썼던 float도 가능. float와 double는 고정, 부동 소수점차이), char은 문자형 변수이다. 그리고 main함수 안에쓰인 구문은 .. if, for 등 추가 종속함수가 아니라면 대부분 뒤에 땀 ;을 붙인다. 

 

이제 변수를 출력해보자. 출력은 printf 명령어를 사용한다. python과 마찬가지로, 정수형 출력은 %d, 실수형 출력은 %f, 문자형 출력은 %s를 이용한다. 보면 문장의 마지막 따옴표전에 \n을 입력했다. \n은 줄바꾸기 기능으로, C++에선 python과 다르게 printf 문을 나눠서 출력한다고 자동으로 행 구분이 되지않는다. \n으로 줄바꿈을 직접 해줘야하는데 저걸 안쓰면 각 printf문에 쓰인 문장들이 모두 한줄에 쓰여서 출력된다.

 

위의 코드를 돌려보면 이렇게 줄바꿈이 예쁘게된채로 잘 출력되는것을 볼수있다.

 

이제 변수가 아닌 상수를 선언해보자. 상수는 코드의 시작부터 끝까지, 절대안바뀌는 값이다. 자주사용하는 상수값... 중력가속도와 질량을 예로 들어보자.

 

#include<stdio.h>

#define Gravity 9.81
#define mass 70

main()
{
	double force;
	
	printf("중력가속도는 %f\n",Gravity);
	
	force=mass*Gravity;
	
	printf("힘은 %f 뉴턴",force);
}

상수는 main함수 밖에서 선언한다. 뭔가 바꿀수없는 절대적인 느낌이든다. #define 상수명 상수값  을 공백으로 구분해 입력해준다. 

위 코드를 돌려보면 이렇게 출력된다. 상수끼리 계산, 상수와 변수 계산 모두 가능하다.

 

그럼 변수와 구분되는 상수만의 고유한특성은? 당연히 같은코드내에서 바꿀수없다는 특징이있다.

#include<stdio.h>

#define Gravity 9.81
#define mass 70

main()
{
	Gravity=10;
	
	printf("중력가속도 근사치는 %d입니다.",Gravity);
}

만약 내가 계산의 편의를 위해 중력가속도를 10으로 근사했다고 해보자. 위에서 상수로 9.81로 정의한 Gravity를 main함수안에서 그냥 10으로 다시정의해버리면 어떻게될까?

요래 에러가 떠버린다. 상수에 값을 할당하려고 할경우 에러가 발생한다.

 

반응형