티스토리 뷰

C언어

10day.c 배열 정리

양곰3 2017. 3. 11. 18:54

배열


- 동일한 타입의 데이터가 여러개 저장되어 있는 

  데이터 저장 장소


- 배열안에 들어있는 각각의 데이터들은 정수로 되어

  있는 번호(첨자)에 의하여 접근


- 배열을 이용하면 여러개의 값을 하나의 이름을 

  처리할 수 있다.


배열의 특징


- 나란히 메모리 공간 할당


- 순차적으로 접근 가능


인덱스: 배열원소의 번호


배열 선언


 int grade [10];


- 자료형: 배열 원소들이 int형이라는 것을 의미


- 배열 이름: 배열을 사용할 때 사용하는이름 grade


- 배열 크기: 배열 원소의 개수가 10개


- 인덱스(배열번호)는 항상 0부터 시작


예) int grade[10];

--> 1번 인덱스 == grade[0]


예) int score[60]; --> 60개의 int형 값을 가지는 배열


    float cost[12]; --> 12개의 float형 값을 가지는 배열


    char src[10],dst[10]; --> 2개의 문자형 배열을 동시에 선언


    int index,days[10]; -->일반 변수와 배열을 동시에 선언


잘못된 인덱스 문제


- 인덱스가 배열의 크기를 벗어나게 되면 프로그램에

  치명적인 오류를 발생시킴


int grade[5];


grade[5] = 60 ---> 치명적 오류


배열의 초기화


int grade[5] = {10,20,30,40,50};

  

 각 인덱스마다 입력해주는것보다 위처럼 한꺼번에

 초기화 시켜주는게 간편하다.


- 배열의 크기가 주어지지 않으면 자동적으로 초기값의

  개수만큼이 배열의 크기로 잡힌다.


int grade[] = {10,20,30,40,50};


배열의 복사


int grade[SIZE];

int score[SIZE];


score = grade --> 잘못된 방법 / 컴파일 오류



int i;

int a[SIZE] = {1,2,3,4};

int b[SIZE];


for(i=0; i<SIZE; i++){ -->올바른 방법

  (원소를 일일이 복사한다.)

b[i] = a[i];

}



배열의 비교


int i;

  int a[SIZE] = {1,2,3,4,5};

  int b[SIZE] = {1,2,3,4,5};


  if(a==b){

  printf("잘못된 결과입니다.\n");

}

  else{

printf("잘못된 결과입니다.\n");

}

--> 올바르지 않은 비교

=========================================


  for(i=0; i<SIZE; i++){


if(a[i] != b[i]){

printf("a[]와 b[]는 같지 않습니다.\n");

return 0;

}

}

printf("a[]와 b[]는 같습니다.\n");


--> 올바른 배열 비교

'C언어' 카테고리의 다른 글

12day.c 난수 함수, 지역, 전역 변수 정리  (0) 2017.04.03
11day.c 함수정리  (0) 2017.04.03
8,9day.c 반복문 정리  (0) 2017.03.11
7day.c switch문 정리  (0) 2017.03.09
6day.c if문 정리  (0) 2017.03.09
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함