전역변수란? 코드 전체에서 사용할 수 있는 변수
지역변수란? 스코프내에서 사용할 수 있는 변수
전역변수와 지역변수 사용법을 보자면
#include<iostream>
using namespace std;
int tNUM; //전역변수
int main(){
int num = 1; //지역변수
tNUM = 20;
}
차이를 아시겠나요?
전역변수는 함수에서 쓰게될 때 다시 선언하지 않아도 됩니다.
함수는
자료형 변수명(int n){
}
void PrintNum(int i) {
cout << i << endl;
}
int Sum(int i, int j) {
return i + j;
}
이렇게 선언 할 수 있습니다.
main함수에서 사용할 때는 함수명(i);
PrintNum(num);
이렇게 사용할 수 있습니다.
전체 소스코드 입니다!
#include<iostream>
using namespace std;
int tNUM; //전역변수
void PrintNum(int i) {
cout << i << endl;
}
int Sum(int i, int j) {
return i + j;
}
int main() {
//파일이름도 한글 안쓰는걸 추천
//코드상에서 한글을 써도 되는 부분
//1. 주석
//2. 문자열
//int 정수 << 할 수 있지만 하지마세요
//ctrl+rr 누르면 코드 내에 있는 변수명 한번에 바꿀수있음.
int aa; // 지역변수
tNUM = 20;
//함수
int num = 1;
int num2 = 20;
PrintNum(num);
//함수나 변수에 f12누르면 그 변수나 함수 위치에 갈수 있음
cout << Sum(num, num2) << endl;
return 0;
}
간단한 계산 시스템 만들기
#include<iostream>
using namespace std;
int Sum(int a, int b) {
return a + b;
}
int Mul(int a, int b) {
return a * b;
}
int Sub(int a, int b) {
return a - b;
}
int Div(int a, int b) {
return a / b;
}
int main() {
int num = 20;
int num2 = 10;
cout << Sum(num, num2) << endl;
cout << Mul(num, num2) << endl;
cout << Sub(num, num2) << endl;
cout << Div(num, num2) << endl;
return 0;
}
이렇게 처음 제출했으나 div는 0이 나눠질 수 없다는 사실을 깨달았습니다.
그래서 저 부분을
int Div(int a, int b) {
if(a != 0 && b != 0){
return a / b;
}
else{
cout << "0 error";
}
}
이렇게 바꾸어 주었습니다.
배열 선언 방식은 자료형 변수명[숫자] 로 구성되어있다.
int num[5] = { 10,20,30,40,50 };
char ch[10];
float fl[10];
double db[10];
bool b[10];
숫자는 상수로 이루어져있으며 변수는 들어갈 수 없다.
하지만 변수처럼 할 수 있는 방법이 있습니다.
const int size1 = 10; //const를 붙이면 상수로 바뀜
int num1[size1]; //이렇게 사용가능
const를 쓰면 변수가 상수로 변환되서 위처럼 사용이 가능합니다.
이차원배열도 사용이 가능합니다.
int n[5][5] = { { 0,1,2,3,4 },
{ 5,6,7,8,9 }
}; //이차원배열
문자열은 문자들이 배열로 이루어진 것입니다.
사용법은 string 변수명 입니다.
string str;
str = "string";
string에는 여러 함수를 사용할 수 있는데
간단하게 몇개 보자면
cout << str.at(1) << endl; //맨앞글자 출력
cout << str.length() << endl; //문자열 길이 출력
str.front(); //가장 앞의 char형 반환
str.empty(); //str이 비어있는지 확인 bool형 반환
//str.find("tr"); //"tr" 찾기
//str.replace(0, 3, str2); //글자 위치 바꾸기
여러가지 더 있지만 수업시간에 다룬 함수는 여기까지 입니다.
전체 소스코드 입니다.
#include<iostream>
using namespace std;
int main() {
//int t = 10;
//int num1[t] << 이렇게는 안됌.
const int size1 = 10; //const를 붙이면 상수로 바뀜
int num1[size1]; //이렇게 사용가능
int num[5] = { 10,20,30,40,50 };
int size = sizeof(num) / sizeof(int);
for (int i = 0; i < size; i++) {
cout << num[i] << endl;
}
//배열의 한계
//1. 크기 변화 불가능 num[5] -> 에러
//2. 배열 크기 확인 귀찮음. -> sizeof로 알아내야함
//3. 한번에 초기화 불가능
char ch[10];
float fl[10];
double db[10];
bool b[10];
int n[5][5] = { { 0,1,2,3,4 },
{ 5,6,7,8,9 }
}; //이차원배열
//문자열
//문자 + 배열
char c[10];
string str;
str = "string";
string str2 = "test";
cout << str.at(1) << endl;
cout << str.length() << endl;
str.front(); //가장 앞의 char형 반환
str.empty(); //str이 비어있는지 확인 bool형 반환
//str.find("tr");
//str.replace(0, 3, str2);
return 0;
}