자료구조

배열이란? 다수의 데이터를 저장하고 처리하는 경우에 유용하게 사용할 수 있는 것이 배열이다. 배열의 선언 방법 자료형 배열이름 길이정보 순이다 즉 int arr[20]; //int형 변수 20개로 이뤄진 배열, 이름은 arr이다. 4 * 20개 byte double arr2[10]; // 길이가 10인 double형 1차원 배열 8*10개 byte 이렇게 배열을 선언 가능하다 . 각 배열마다 각 자료형의 크기만큼 바이트가 할당되어 있다. 배열의 접근 방법 int arr[3]; //길이가 3인 int형 1차원 배열 위의 배열로 각 배열에 접근을 하는 방법은 .. arr[0]= 1; // 배열 arr에 첫 번째 요소에 1을 저장 arr[1]= 2; // 배열 arr에 두 번째 요소에 2을 저장 arr[3]=..
1. 다차원 배열의 이해와 활용 -2차원 배열, 3차원 배열? ok, 4차원 배열, 5차원배열? No! 1차원배열은 선, 2차원 배열은 평면구조, 3차원 배열은 직육면체의 구조 배열이다. int a1[10] ; //길이가 10인 1차원 배열 int a2[4][5]; //행(가로)4, 열(세로)5인 2차원 배열 int a3[2][3][4]; //높이 2, 행3, 열4 인 3차원 배열 2차원 배열을 이해하면 3차원 배열은 이해가 필요없다. ​ -다차원 배열을 대표하는 2차원 배열의 선언 int arr[3][4] ; //행4, 열3 인 int형 2차원 배열 이렇게 배열이 선언되면 배열요소안에 삽입된 두 개의 숫자는 각각의 요소에 접근할 때 사용하게 되는 인덱스 값이다. 정리하면 배열의 이름이 arr이고 배열요..
1. 함수의 인자로 배열 전달하기 함수는 인자를 전달받도록 정의할 수 있다. 함수라는 이름이 붙은 이유도 인자의 전달과 값의 반환이 가능하기 때문이다. -인자전달의 기본방식은 값의 복사이다. "함수호출시 전달되는 인자의 값은 매개변수에 복사가 된다" 위의 문장에서 가장 중요한 단어는 "복사"이다. 즉 복사가 되는 것 뿐이기 때문에 함수가 호출되고 나면 전달되는 인자와 매개변수는 별개가 된다. int SimpleFunc(int num){..} int main(void){ int age =17; SimpleFunc(age); //age에 저장된 값이 매개변수 num에 복사됨 } 위 코드의 SimpleFunc 함수의 호출을 통해서 인자로 age를 전달하고 있다. 그러나 실제로 전달하는 것은 age가 아닌, a..
1. 포인터와 배열의 관계 배열의 이름도 포인터이다. 가장 중요한 것은 '배열이름의 포인터 형'을 이해하는 것이다. -배열의 이름은 무엇을 의마하는가? 배열의 이름은 포인터이다. 단 ,그 값을 바꿀수 없는 '상수형태의 포인터'이다. int arr[3] = {0,1,2}; printf("배열의 이름 : %p \n", arr); printf("첫번째 요소 : %p \n", &arr[0]); printf("두번째 요소 : %p \n", &arr[1]); printf("세번째 요소 : %p \n", &arr[2]); //%p는 주소를 출력하는 서식문자 다음의 실행결과는 이렇다. 배열의 이름 : 0012FF50 첫 번째 요소 : 0012FF50 두번째요소: 0012FF54 세번째요소 : 0012FF58 //위 주..
1. 포인터란 무엇 인가? 포인터는 C언어가 low레벨 언어의 특성을 지닌다. 왜냐하면 포인터를 이용하면 메모리에 직접 접근이 가능하기 때문이다. ​ -주소의 값의 저장을 목적으로 선언되는 포인터 변수 int main(void){ char ch1 = 'A' , ch2 = 'Q'; int num = 7; .... } 위와 같이 선언됬을 때 총 6바이트(1바이트 +1바이트+4바이트)로 구성되어있어 메모리에 할당된다. 예를 들어 나란히 할당된다고 가정한다. A값은 주소값 0x12ff74에 저장되어 있고, Q값은 주소값 0x12ff75에 저장되어 있고 숫자 7은 0x12ff76부터 0x12ff79까지 메모리에 할당된다. 'int형 변수 num은 어디에 선언되어 있는가?' 우리는 'int형 변수 num은 ox12..
신재권
'자료구조' 태그의 글 목록