본문 바로가기

공부방/C언어 따라하기

C언어 기초 3강 : 변수 3개 * 여러개 주소록

3장 


변수 3* 여러 개

 

여러 개의 의미는다음과 같다.

 

한 사람의 정보는 이름 주소 전화번호로 구성된다.

이름 주소 전화번호를 1개의 쪽, 종이 혹은 페이지, 주소록 1면이라고 생각한다면,

여러명의 정보를 저장하려면 여러 개의 종이 쪽 페이지 면 이필요할 것 이다.

 

다음 그림을 보자.

1개의 페이지가 여러 개로 구성되서 생성한 숫자대로 인원의 정보를 저장 할 수 있다.

여기는 총 4명의정보를 저장 할수 있게 되었다.

 

처음 주소록은 1명의 정보만 저장 가능했지만,

무려 4, 4배나 많은 정보를 저장 할 수 있게 되었다.

 



 

단순 무식한방법으로 생각했을때는

        char sName[10];    //     름 저장 변수    

        char sPhone[15];   // 전화번호 저장 변수

        char sAddress[50]; //     소 저장 변수

을 여러 개 생성하면 될것이다.

이런식으로 말이다.

        char sName[10];    //     름 저장 변수    

        char sPhone[15];   // 전화번호 저장 변수

        char sAddress[50]; //     소 저장 변수

 

        char sName2[10];    //     름 저장 변수   

        char sPhone2[15];   // 전화번호 저장 변수

        char sAddress2[50]; //     소 저장 변수

 

        char sName3[10];    //     름 저장 변수   

        char sPhone3[15];   // 전화번호 저장 변수

        char sAddress3[50]; //     소 저장 변수

 

 

        char sName4[10];    //     름 저장 변수   

        char sPhone4[15];   // 전화번호 저장 변수

        char sAddress4[50]; //     소 저장 변수

 

변수 뒤에 2 3 4 로 구분을 했다.

 

이렇게 생성을 해주면 메모리에는 어떤 일이 생기게 될가.???

다음을 보자.

 


이렇게 메모리에 각각 변수를 생성한 것이 된다.

 

따라서 4명의 정보를 컨트롤 가능하게 프로그래밍을 하면 된다.

4명의 정보를 입력 받으면 되고,

4명의 정보를 출력해주면 된다.

Ex_Address2 프로젝트 파일 이다 다운로드 ex_address_3강.zip


빌드 후 실행해 보기 바란다.

 

다음은 실행 결과.



 

 

이로써. 무려 4명의 정보를 저장 가능한 주소록을 만들었다.

 

이제 부터가 중요한 부분이다.

만약, 만약 4명 이상의 정보를 저장해야 하면 어떻게 될까?

전세계 인구의 정보 약 80억명의 정보를 저장한다고 했을때 어떻게 해야 할까.?

 

변수 생성을

sName,sName2,sName3,sName4,.........sName7999999999, sName8000000000 로 해야 할가??

 

이것은 아마도 무리일것 같다.

단순히 이름 만 80억개 저장한다 했을때, 다음장에 나올 배열 을 이용하지 않고서는 불가능한 방법일것이다.

물론 가능은 하겠지만 말이다.

만약 이름 받기위해 80억개 변수 생성, 전화번호 변수 80억개 생성, 주소변수 80억개 생성........

도저히 불가능할것 같다.

 

1초에 1(라인)을 코딩한다고 쳐도 총 240억줄임으로

240억 줄(라인) / 60/ 60 = 6,666,667 시간이 걸린다. 660만시간...

포기할것이다.

인간이 100살까지 산다고 가정하면 87만시간을 살수있다... 8대가 자손 대대로 코딩해야 작성할수 있는 량이다.

 

 

그런데 이를 해결하기 위한 방법이 있다.

바로 다음장에 나올 배열이라는 것이다.

데이터 관리의 마술사(??) 배열(Array)을 다음장에서 이어가도록 한다