코딩

[C++] 형변환, 배열, for-each문

Jally. 2023. 12. 21. 13:34
728x90
  • C++에는 강제 형변환과 자동 형변환이 있다.

자동 형변환은 기본값으로, 더 범위가 넓은 것으로 형변환이 된다. 예를들어, int형과 double형의 연산이라면 결과값은 double형이 나온다!

강제로 형을 변환하려면 아래와 같이 변수 앞에 (원하는 자료형)을 써주면 된다.

double divide(int n1, int n2){
	std::cout << (double)p1 / (double)p2 << std::endl; 
	std::cout << (double)n1 / n2 << std::endl;
	std::cout << n1 / (double)n2 << std::endl
}
  • 배열

배열은 같은 자료형을 가지고 있는 변수들을 하나의 식별자로 선언할 수 있게 해준다!

예를 들어, 나라와 관련된 배열을 선언해보자.

int main(){
	std::string city[5] = {"대한민국","중국","미국","일본","캐나다"};
}

 

위와 같이 [자료형] [배열 이름] [배열의 크기] = {내용} 으로 선언해주면 된다.

** C++에서는 배열의 크기를 꼭 지정해주어야 한다!

string city[] = {"대한민국","중국","미국","일본","캐나다"}; 도 결국 크기를 5로 선언한 것과 마찬가지이다. ** 

그렇다면 선언한 배열 city를 출력해보자.

int main(){
    std::string city[5] = {"대한민국","중국","미국","일본","캐나다"};
	for(int i = 0; i < 5; i++){
    	cout << city[i];
    }
}

 

바로 for문을 사용하면 된다.

여기서 배열의 인덱스 개념이 나온다. 배열의 인덱스는 0부터 시작한다.

따라서 city[0]은 대한민국이 된다. 만약 배열의 크기를 직접 세고 싶지 않다면, 2가지 방법이 있다.

1. sizeof 사용

    sizeof(city)/sizeof(*city)

    배열의 전체 크기를 자료형 크기로 나누면 배열의 크기가 된다는 것을 이용한 것이다.

2. size 사용

    city.size()

    size함수는 배열의 크기를 리턴해준다.

더더 쉽게 배열을 출력하는 방법은 for-each문을 사용하는 것이다.

int main(){
    std::string city[5] = {"대한민국","중국","미국","일본","캐나다"};
	for(string i : city){
    	cout << i; //대한민국중국미국일본캐나다
    }
}

 

만약 배열을 선언하고, 입력받은 정보를 넣고 싶다면 다음과 같이 하면 된다.

//성적을 입력받고 평균을 출력하는 예제
int main(){
	int grade[5];
    float sum = 0;
    for(int i = 0; i < 6; i++){
    	std::cout << i << "번 학생의 성적을 입력하세요: ";
        std::cin >> grade[i];
        sum += grade[i]
    }
    std::cout << "성적 평균 : " << ave / 5;
}

 

똑같이 for문을 이용한 후, 각 인덱스에 cin을 해주면 된다!!

728x90