일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- c언어 구조체
- 구포에서 삼량진
- 안드로이드 이미지 로드
- NetworkImageView
- 창원에서 부산
- elk stack
- 구포에서 자전거
- 구조체
- android ImageLoad
- 로드바이크
- 부산에서 창원 자전거
- spring
- 자전거
- android facebook
- volley
- spring boot
- C언어
- mysql
- android imageView zoom
- 삼량진 자전거
- workbench
- 삼량진
- 낙동강 종주
- 부산에서 창원
- ImageLoad
- android loadImage
- laravel
- 자바
- image zoom
- httpclient post
- Today
- Total
은근한
C언어 4. 배열(일차원배열,이차원배열,다차원배열,구구단) 본문
배열
배열이란??
배열이란 하나의 이름으로 연속적인 메모리 공간을 할당받는 변수의 집합을 말한다.
배열 형식
데이터형 배열이름 [필요한 배열 개수]; int arr[10];
ㆍ데이터형
일반 데이터형과 같이 약속된 예약어, int,char,float등..
ㆍ배열이름
변수이름지정과 같은 방식
ㆍ필요한 배열개수
배열로 사용할 방의 개수를 정한다. 이때 지정한 개수의 각 방의 위치를 나타내는 숫자를 첨자라 하며,
첨자는 0부터 지정한 개수 바로 전까지 표시
ex) char test[3]; 이선언문은 test 이름으로 연속된 기억장소 3개를 받는다. test[0],test[1],test[2]
ex) int x[3],int y, int z; 기억장소 비교
메모리[기억장소] |
int x[0] |
int x[1] |
int x[2] |
|
int y |
|
|
|
int z |
배열은 연이은 공간에 메모리가 할당 되는것을 볼수 있다. 일반적인 변수는 할당된 공간이 규칙없이 임의대로 설정 된다.
ex)
#include<stido.h>
void main()
{
int a,i;
char b;
float c;
int d[3];
printf("a의 주소 %d\n",&a); //주조지정연사자인 &를 사용한다.
printf("b의 주소 %d\n",&b);
printf("c의 주소 %d\n",&c);
for(i=0;i<3;i++)
printf("d[%d]의 주소:%d\n",i,&d[i]);
}
//출력되는 주소의 값은 각 시스템마다 다르게 나타난다. 즉, 하는 장소에 따라 다르게 나타난다는 것이다.
위를 실행해보면 배열을 제외한 나머지 기억장소는 특정한 규칙이 아닌 임의로 각 기억장소에 할당 되는것을 알수있다.
일차원배열
일차원배열은 첨자가 하나로 이루어진 배열을 말한다. a[i]의 형태 일차원 배열은 하나의 첨자로 이루어져 단일 반복문으로 해당 처리가 가능
ex) 흔한 정수를 입력받아 총점과 평균을 구하자
#include<stido.h>
void main()
{
int score[10],i; //score[10] 첨자에 10을 준것은 일차원 배열의 한계점이라고 해야하나 배열을 미리 지정해야 쓸수있다.
int sum=0; //총합
float average = 0;//평균이므로 소수점이 나올수 있기네
for(i=0;i<10;i++){
printf("점수입력 %d : ",i+1);
scanf("%d",&score[i]);
sum = sum + score[i]; //점수를 누적시킨다
}
average = sum/10;
printf("총점은 %d\n",sum);
printf("평균은 %f\n",average);
}
다차원 배열 및 이차원 배열
다차원 배열은 첨자가 둘이상으로 구성된 배열을 말한다. 다차원 배열중 많이 쓰니는 이차원배열로써 형식은 arr[i][j]의 형태이다
첫번째 첨자는 행을 표시하며 두번째 첨자는 열을 표시한다.
ex) int arr[2][3];
int arr[2][3] |
행 |
행 |
행 |
열 |
int arr [0][0] |
int arr [0][1] |
int arr [0][2] |
열 |
int arr [1][0] |
int arr [1][1] |
int arr [1][2] |
*tip
이차원 배열의 주소는 첨자가 행,열 2개가 있다고 해서 열에따라 int arr[0][i] 메모리 int arr[1][i] 메모리가 있다고 생각할수 있는데
실직적으로는
메모리 |
arr[0][0] |
arr[0][1] |
arr[0][2] |
arr[1][0] |
arr[1][1] |
arr[1][2] |
arr[2][0] |
arr[2][i].. |