상세 컨텐츠

본문 제목

C언어 배열과 포인터 -1

Tips/대학

by 한국인맛집 2019. 4. 10. 22:20

본문

반응형

배열(Array)

 

배열은 변수의 확장에 해당된다. 변수는 하나의 기억공간에 저장되는 반면, 배열은 연속적인 기억공간을 사용하는것과 같다.

 

#include<stdio.h>

void main(){

int varA;
int arrayA[3];

}

 

이해하기 쉽게 본다면 아래와 같이 메모리에 할당된다.( 실제로 이런식으로 될수도 있고 안될수도있다.)
varA       arrayA[0] arrayA[1] arrayA[2]      

 

다차원배열
2차원 이상의 배열을 다차원 배열을 말한다. 하지만 2차원배열까지만 사용된다. 3차원이상은 프로그래머도 사용하기가 어렵고 햇갈리기 때문.
 
#include<stdio.h>

void main(){


int arrayInt[3][3];  // 2차원배열
char arrayChar[2][2][2]; //3차원배열  잘사용되지않음
float arrayFloat[2][2][2][2]; // 4차원배열 사용되는곳을 본적이없음.


}

배열은 연속적인 데이터를 담을수있고, 변수를 줄이는데 매우탁월하다 아래와 같은 코드를볼수 있다.


#include<stdio.h>

void main(){

	int testScore[10];
    int i;
   	
    printf("10명의 시험점수를 입력받아보자!\n");
    
    for(i = 0; i< 10; i++){
		printf("%d 번째 학생 점수 \n",i);
        scanf("%d",&testScore[i]);
	}
    
    printf("완료.\n");
   
}

만약 배열을 사용하지않았다면 학생수만큼 변수를 만들어야했을것이다. 

C언어는 문자열(string) 이 없다. 그럴땐 배열을 사용하면 문자열을 입력받을수있다.

 

#include<stdio.h>

void main(){
	
	char names[7] = "KOBOSO"; //문자열같은경우 마지막에 {\0 ,NULL}문자가들어가야하므로 
    	                      //사이즈 +1 해준다.  
	int i;
    
    // 문자를 한개씩 받는것도 가능하다.
	for(i = 0; i< 7; i++){
    	
        printf("문자 1개씩 받겠습니다. \n");
		scanf("%c",&names[i]);
    }
    
    names[6] = '\0'; // NULL문자를 넣어주어야함.
    
	printf("입력받은 문자는 : %s\n",names);
    
    
    //애초에 문자열을 입력받을수도 있다.
    
    char nameString[20];
    
    scanf("%s",nameString);
    
    int looper = 0;
    while( nameString[looper] != NULL){
    	
        printf("%c",nameString[looper]
        looper++;
    }
}

 

반응형

관련글 더보기