180 likes | 374 Views
배열과 포인터. 4 조 김현 , 안정환 , 이호윤 , 장동식. 목 차. 배열이란 . 포인터란 . 발전방향 . 출처 Q&A. 배열이란. 변수의 한 종류 . 동일한 데이터형을 모아놓은 형태 . 공통된 이름으로 같은 종류의 데이터를 저장하기 위한 기억 장소를 만들어 놓고 그곳에 값을 순서대로 저장 . 각각의 기억 장소를 배열의 요소라고 하며 일반 변수처럼 사용가능 . 요소를 구분하기 위해 첨자 (index) 를 사용. 1 차원 배열. 1 차원 배열이란 ?
E N D
배열과 포인터 4조 김현,안정환,이호윤,장동식
목 차 • 배열이란. • 포인터란. • 발전방향. • 출처 • Q&A
배열이란. • 변수의 한 종류. • 동일한 데이터형을 모아놓은 형태. • 공통된 이름으로 같은 종류의 데이터를 저장하기위한 기억 장소를 만들어 놓고 그곳에 값을 순서대로 저장. • 각각의 기억 장소를 배열의 요소라고 하며 일반 변수처럼 사용가능. • 요소를 구분하기 위해 첨자(index)를 사용.
1차원 배열 • 1차원 배열이란? • - 1차원 배열은 배열의 첨자개수가 한개인것. • 1차원 배열의 선언방법. • ex) type 배열명[size]; • - type : 자료형 • - size : 배열의 크기 • - 배열명 : 사용자가 정의하는 변수이름 • 주의 사항 • - 배열은 타 변수와 달리 컴파일러가 메모리를 확보 할 • 수있도록 분명하게 선언
array[0] array[1] array[2] array[3] array[4] 1차원 배열 • 1차원 배열 선언 예. • Int array[5] • 라고 선언을 하면. • 이런 구조로 선언이 된다. • 주의 사항 • - 배열을 선언하고 array[5]=10; 이라고 선언 하면 • 버그가 발생 될 수 있다. 배열 의 경계 를 지켜 주어야 • 하기 때문이다.
1차원 배열 • 1차원 배열의 초기화 • 1차원 배열의 올바른 예 • Int arra[6]={1,2,3,4,5,6]; 6개의 요소의 정수형배열초기화 • Int arrb[5]={1,2,3} 3개의 요소를 가진 정수형 배열 나머지는 널값 • Int arrc[]={10,20,30,40,50}; 첨자가 생략돼도 초기화 개수 만큼 정해짐 • 1차원 배열의 잘못된 예 • Int arra[5]={1,2,3,4,5,6}; 요소의 개수는 5개인데 6개로 초기화 • Int arrb[]; 초기화 값이 없을 경우 첨자필수 • Char arrc[5]={“string”}; 초기화 문자의 개수가 7인데 첨자가 5개라 에러
1차원 배열 • 1차원 배열 사용 예 실행 결과 화면
포인터란? • 포인터란? • - 어드레스를 저장할 수 있는 변수 • 포인터 선언(정의) • int *p; • 포인터로 대입 • p=&a; ② 포인터의 개념 • 포인터란 번지에 대한 기호화된 표현 • 포인터 변수란 번지값을 지정할 수 있는 변수를 의미함
포인터란? • 포인터 선언방식 • char *buf • int * buf1 • float *buf2 • 포인터 변수의 용도는 다른 곳에 위치한 자료를 가리키는 • 역할을 담당 • 포인터의 연산자 • & 연산자 • - 변수명 앞에 붙으며, 그 변수의 번지값을 나타냄 • * 연산자 • 포인터 상수나 포인터 변수 앞에 사용되며, 그 포인터 • (번지)에 위치한 변수 값을 가리킬 때 사용
포인터란? 예제 # include <iostream.h> void main() { int a, *iptr; a=100; iptr = &a; cout << "a=" << a << "\tiptr=" << iptr <<endl; } 실행 결과 화면
1차원 배열과 함수 • 배열에서 배열의 이름은 그 배열의 첫 번째 요소에 대한 포인터임 • 배열의 이름 dataArr는 그 배열의 첫 번째 요소에 대한 포인터를 의미 - dataArr == &dataArr[0]으로 표현
1차원 배열과 함수 int *intp; int dataArr[5]; intp = dataArr; • 포인터 변수 intp에 dataArr의 첫 번째 요소의 주소를 • 할당함 • intp는 배열 dataArr를 가리키게 되고, 포인터 변수 • intp로도 배열의 각 요소에 접근할 수가 있게 됨 • 포인터 변수인 intp에 *연산자를 붙이면 포인터가 • 가리키는 곳의 내용을 의미함
1차원 배열과 함수 • 포인터 변수 intp는 배열 dataArr의 시작 주소를 가지고 있으며, 연산을 이용하여 해당 주소에 접근이 가능함
2차원 배열과 함수 • C++ 언어에서는 다차원배열 지원. • 다차원배열 중 가장 간단한 형태가 2차원배열. • 2차원배열은 1차원 배열에 대한 배열. • 2차원 배열을 행렬이라고 부름. • 선언방법 • Type 배열명 [size1][size2]; size1 : 행의 크기 size2 : 열의크기
2차원 배열과 함수 • 2차원 함수의 사용 예 실행결과
발전방향 • 부족한점 • 아직 포인터에 대한 이해가 부족하여 • 포인터에 배열에 포인터에 대한 내용이 부족함.
출 처 • 참고 사이트 http://blog.naver.com/zelet7?Redirect=Log&logNo=140015263315 http://www.jbscience.hs.kr/liguard_bbs/view.php?code=li_study002&page=3&number=20&keyfield=&key= • 나머지는 교과서 위주로 함 예제로 배우는 C++프로그래밍
Q&A 대단히 감사합니다…