본문 바로가기
반응형

배열4

[C 언어] 10.포인터 (찾는 내용이 있으시다면 Ctrl + F를 눌러 원하는 내용을 찾아주세요.) 포인터 포인터는 주소값을 저장하기 위한 변수입니다. 포인터의 선언은 다음과 같이 합니다. int *x; int a; x = &a 이렇게 선언한다면 데이터형이 int인 포인터형을 선언한 것입니다. 포인터는 주소를 저장하는 변수이기 때문에 변수의 주소를 반환하는 연산자 &를 사용하여 변수의 주소값을 할당합니다. *은 참조 연산자로 포인터가 가리키는 주소에 저장 되어있는 값을 참조합니다. 이때의 *은 포인터를 선언했을 때의 *와는 다릅니다. 포인터 변수의 크기는 사용하는 컴파일러마다 다릅니다. 개발환경이 32비트면 포인터의 크기도 32비트, 64비트이면 64비트 입니다. 포인터 사용의 예시를 보겠습니다. #include int mai.. 2024. 4. 14.
[C 언어] 8. 배열 배열 배열은 같은 데이터 타입의 변수의 집합입니다. 배열은 배열의 원소들을 저장할때 실제로 인접한 메모리 위치를 사용합니다. 또한 배열은 초기화 할때 특별한 값으로 초기화하지 않는다면 0이나 NULL로 초기화 해주는게 좋습니다. 배열의 선언은 다음과 같습니다. 자료형 변수명[요소개수]; int a[10]; //int array char b[10]; //char array (i.e. string) 위와 같이 int a[10]으로 선언한다면 데이터 타입이 int인 변수가 메모리 상에 연속적으로 10개가 붙어서 생성됩니다, a[i]라고 한다면 i번째 인덱스에 접근한다는 의미입니다. 배열의 인덱스는 0부터 시작합니다. 따라서 마지막 인덱스는 배열을 선언할때 []에 써준 숫자보다 1 작은 수 입니다. 그렇다고 인.. 2024. 4. 14.
[자료구조] 다항식 (Polynomials) 배열을 사용하여 다항식을 관리할 수 있습니다. 많은 방법들이 있지만 대표적으로 Dense representation 과 Sparse representation이 있어요. Dense representation은 모든 다항식의 항과 계수가 0인 모든 항을 포함하는 것을 말합니다. Dense representation의 장점으로는 아주 간단한 연산 방법으로 다항식을 계산할 수 있다는 것입니다. 하지만 여전히 문제점이 있어요. 모든 다항식의 항과 계수가 0인 모든 항을 포함하다 보니 공간의 낭비가 생길 수 밖에 없고, 대부분의 항들이 계수가 0인 상황이 더 많을 겁니다. 그래서 Sparse representation을 사용하기도 합니다. Sparse representation은 각각의 다항식의 항들이 지수와 계.. 2024. 4. 7.
[자료구조] 배열(Arrays) 배열은 한 타입의 자료형을 연속적으로 할당하는 것을 말합니다. 만약 한 반이 30명인 학생들의 이름을 사용하고 싶다면 30개의 변수를 각각 할당하기 보단 배열을 이용하여 선언하는 것이 더욱 쉽고 효율적일 것입니다. 배열의 선언은 다음과 같이 할 수 있습니다. int list[5] = {1,2,3,4,5}; int형 배열 list는 5개를 저장할 수 있는 배열로 선언되었습니다. 또한 각각의 요소에는 앞에서부터 1,2,3,4,5를 저장하도록 하였습니다. 여기서 각각의 값과 주소에 접근 하는 방법은 다음과 같습니다. Variables Memory Address list[0] base address = a list[1] a + sizeof(int) list[2] a + 2 * sizeof(int) list[3].. 2024. 4. 7.
반응형