💻 개인공부 💻/C | C++

[C++] C++에서의 배열 선언

공대생 배기웅 2020. 6. 8. 01:04
반응형

JAVA에서의 배열 선언

나는 프로그래밍 언어를 JAVA로 시작하였기 때문에 JAVA가 편하다. 그래서 C++을 사용할 때 헷갈려서 불편하곤 한다. 특히 '배열'을 선언할 때 불편하다. 

먼저 JAVA에서의 배열 선언이다. 

int [] Array =new int [3];

만약 배열의 크기가 정해지지 않았다면 다음과 같이 설정하면 된다.

Scanner scan=new Scanner (System.in);
int n=scan.nextInt();
int [] Array = new int [n];

2차원 배열도 위의 방법과 같이 생성 할 수 있다. 

Scanner scan=new Scanner(System.in);
int m=scan.nextInt();
int n=scan.nextInt();
int [][] Array = new int [m][n];

그렇다면 C++에서 배열은 어떻게 생성할 수 있을까?

 

C++에서의 배열 선언

▶ 배열 선언 시 공간 할당

int arr[6];

만약 위의 예시처럼 배열을 선언했다면 공간은 아래 그림처럼 할당이 된다. (int형은 4byte이므로)

따라서 

int arr[6];
for(int i=0;i<6;i++){
	arr[i]=10*(i+1);
}

와 같이 배열을 초기화 시켜주었다면

이렇게 배열이 만들어진다. 

 

정리를 하자면 아래의 방법으로 배열이 만들어질 수 있다.

int arr[6]={1,2,3,4,5,6};
int arr[]={1,2,3,4,5,6};
int arr[6]={1,2};
//이런 경우는 arr[6]={1,2,0,0,0,0}로 초기화

 

 

char 배열 선언

 

char 형 배열도 int형 배열을 선언할 때의 동일하다.

C++ 에서 cout은 배열내에 '\0'가 있으면 그 부분까지 출력하고 출력을 중단한다. 

 

#include<iostream>
using namespace std;

int main() {
	char word[10] = { 'p','r','o','g','r','a','m','\0' };
	//char word[10] = "program";
	cout << "input word is " << word << endl;
	word[3] = '\0';
	cout << "input word is " << word << endl;
	word[0] = 'w';
	word[1] = 'o';
	word[2] = 'r';
	word[3] = 'd';
	cout << "input word is " << word << endl;
}

 

 

 

getline( ) 함수

 

배열에 문자열을 저장할 때는 cin을 사용하지만 getline함수를 사용해서도 저장할 수 있다.

먼저 cin을 이용하여 "program"을 저장해보자.

 

#include<iostream>
using namespace std;

int main() {
	char word[20];
	cin >> word;
	cout << "input word is " << word << endl;
}

 

 

이번에는 getline 함수를 사용하여 program이라는 문자열을 저장해보자.

 

#include<iostream>
using namespace std;

int main() {
	char word[20];
	cin.getline(word, 20);
	cout << "input word is " << word << endl;
}

 

 

getline함수를 사용해서도 문자열에 저장할 수 있음을 알 수 있다.

 

cin.getline( arrayName, arraySize ); 와 같은 형식으로 사용한다.

 

728x90
반응형