배열
-
함수의 매개변수로 포인터 전달 포인터는 다른 변수의 주소를 값으로 가지는 변수입니다. 포인터의 연산자 *(asterisk)는 포인터가 가리키는 값을 의미합니다. 즉, int *a = &b 로 선언했을 때 포인터 변수a는 변수b의 주소를 값으로 가지며 *a는 변수 b가 가진 값을 가리키는 것입니다. 이것을 다른 말로 'dereferncing' 한다고 말합니다. 포인터를 이야기하면 항상 나오는 개념이 배열입니다. 포인터는 배열과 매우 비슷합니다. 배열 int a[4] 를 선언했다고 합시다. 우리가 배열에 들어있는 특정 인덱스의 값에 접근하려면 a[0] = 2, a[2] = 30 등 이러한 방식으로 사용합니다. 이것은 포인터에서 *a = 2, *a = 30 과 유사합니다. 지정 영역에는 차이가 있지만 둘 다 ..
[자료구조] 함수의 매개변수로 포인터 전달함수의 매개변수로 포인터 전달 포인터는 다른 변수의 주소를 값으로 가지는 변수입니다. 포인터의 연산자 *(asterisk)는 포인터가 가리키는 값을 의미합니다. 즉, int *a = &b 로 선언했을 때 포인터 변수a는 변수b의 주소를 값으로 가지며 *a는 변수 b가 가진 값을 가리키는 것입니다. 이것을 다른 말로 'dereferncing' 한다고 말합니다. 포인터를 이야기하면 항상 나오는 개념이 배열입니다. 포인터는 배열과 매우 비슷합니다. 배열 int a[4] 를 선언했다고 합시다. 우리가 배열에 들어있는 특정 인덱스의 값에 접근하려면 a[0] = 2, a[2] = 30 등 이러한 방식으로 사용합니다. 이것은 포인터에서 *a = 2, *a = 30 과 유사합니다. 지정 영역에는 차이가 있지만 둘 다 ..
2021.04.10 -
배열과 구조체의 활용 배열 >> 같은 자료형의 변수들이 연속된 메모리 공간을 차지하는 자료구조 >> 인덱스와 인덱스에 대응하는 데이터들로 이루어진 자료구조 >> 자료형이 같은 데이터들을 하나로 묶는 방법 구조체 >> 하나 이상의 변수를 묶어 그룹화하는 사용자 정의 자료형 >> 자료형이 다른 데이터들을 하나로 묶는 방법 배열과 구조체 자료구조의 활용 문제들입니다. 문제를 먼저 풀어보시고 풀이를 확인해보시기 바랍니다. 1. 크기가 8인 배열 pow[]를 선언하고 여기에 3의 제곱 값들을 저장해보자. 즉 배열의 첫 번째 요소에는 3^0을 저장하고 두 번째 요소에는 3^1값을 저장한다. 마지막 요소에는 3^7값을 저장한다. for 루프를 이용하여 pow[] 배열의 전체 요소의 값을 출력하는 프로그램을 작성하라...
[자료구조] 배열과 구조체의 활용배열과 구조체의 활용 배열 >> 같은 자료형의 변수들이 연속된 메모리 공간을 차지하는 자료구조 >> 인덱스와 인덱스에 대응하는 데이터들로 이루어진 자료구조 >> 자료형이 같은 데이터들을 하나로 묶는 방법 구조체 >> 하나 이상의 변수를 묶어 그룹화하는 사용자 정의 자료형 >> 자료형이 다른 데이터들을 하나로 묶는 방법 배열과 구조체 자료구조의 활용 문제들입니다. 문제를 먼저 풀어보시고 풀이를 확인해보시기 바랍니다. 1. 크기가 8인 배열 pow[]를 선언하고 여기에 3의 제곱 값들을 저장해보자. 즉 배열의 첫 번째 요소에는 3^0을 저장하고 두 번째 요소에는 3^1값을 저장한다. 마지막 요소에는 3^7값을 저장한다. for 루프를 이용하여 pow[] 배열의 전체 요소의 값을 출력하는 프로그램을 작성하라...
2021.03.19 -
일반적으로 어떤 변수를 출력할 때 그것은 해당 변수가 위치한 주소의 값을 출력하는 것이다. 위와 같이 a라는 것은 변수Ko가 가지고 있는 '값' 이며, a가 위치한 주소는 별도의 메모리 주소를 가지고 있는 것이다. 이러한 점에서 Ko == *&Ko 와 같은 뜻이라고 볼 수 있다. array 변수 자체는 array의 시작점 주소를 가지고 있다. 주소값을 출력해보면 Ko, &Ko[0], *&Ko 가 모두 같은 결과를 출력하는 것을 볼 수 있다. 변수 Ko 자체가 시작점 주소를 가지고 있으므로 &Ko[0]와 동일한 의미인 것이다. &와 *가 함께 있으면 서로 교차캔슬되어 *&Ko 와 Ko가 동일한 의미가 된다. 즉 *Ko == Ko[0] 이며 Ko[1]이 되기 위해서는 *(Ko + 1)로 표현 가능하다. st..
[ C언어 ] - 문자열 관련 함수를 직접 구현하기일반적으로 어떤 변수를 출력할 때 그것은 해당 변수가 위치한 주소의 값을 출력하는 것이다. 위와 같이 a라는 것은 변수Ko가 가지고 있는 '값' 이며, a가 위치한 주소는 별도의 메모리 주소를 가지고 있는 것이다. 이러한 점에서 Ko == *&Ko 와 같은 뜻이라고 볼 수 있다. array 변수 자체는 array의 시작점 주소를 가지고 있다. 주소값을 출력해보면 Ko, &Ko[0], *&Ko 가 모두 같은 결과를 출력하는 것을 볼 수 있다. 변수 Ko 자체가 시작점 주소를 가지고 있으므로 &Ko[0]와 동일한 의미인 것이다. &와 *가 함께 있으면 서로 교차캔슬되어 *&Ko 와 Ko가 동일한 의미가 된다. 즉 *Ko == Ko[0] 이며 Ko[1]이 되기 위해서는 *(Ko + 1)로 표현 가능하다. st..
2020.08.23 -
Array는 같은 Datatype을 가진 많은 변수들을 하나의 변수로 저장할 수 있게 해주는 자료 구조이다. 일반적으로 int a[5]; 로 입력하며 대괄호 안에는 변수도 들어갈 수 있으나 컴파일러마다 허용해주는 것이 제각각이기 때문에 정수형 데이터로 사용하는 것이 좋다. sizeof() 함수를 이용해 int a[10]; 의 메모리 크기를 검사해보면 40이 출력된다. 즉 int형 데이터가 4byte이므로 그것의 10개 만큼의 데이터 공간(0번째 index 부터 9번째 index)을 배열로써 만들 수 있는것이다. 만약 20개의 데이터에 값을 순차적으로 한꺼번에 저장하려면 for 반복문을 사용해 위와 같이 설정할 수 있다. 기본 설정값으로 반복문을 이용하지 않고 array에 초기 값을 따로 입력해줘도 위와 ..
[ C언어 ] - 배열 ArrayArray는 같은 Datatype을 가진 많은 변수들을 하나의 변수로 저장할 수 있게 해주는 자료 구조이다. 일반적으로 int a[5]; 로 입력하며 대괄호 안에는 변수도 들어갈 수 있으나 컴파일러마다 허용해주는 것이 제각각이기 때문에 정수형 데이터로 사용하는 것이 좋다. sizeof() 함수를 이용해 int a[10]; 의 메모리 크기를 검사해보면 40이 출력된다. 즉 int형 데이터가 4byte이므로 그것의 10개 만큼의 데이터 공간(0번째 index 부터 9번째 index)을 배열로써 만들 수 있는것이다. 만약 20개의 데이터에 값을 순차적으로 한꺼번에 저장하려면 for 반복문을 사용해 위와 같이 설정할 수 있다. 기본 설정값으로 반복문을 이용하지 않고 array에 초기 값을 따로 입력해줘도 위와 ..
2020.08.19 -
동적메모리의 2차원 배열에 관한 내용이다. int형 포인터 사이즈만큼의 공간을 8개 할당하고 그 할당된 데이터 각각의 데이터의 포인터에 int형 사이즈 6개를 할당하는 것이다. 그림으로 풀이하면 위와 같다. 가운데 8개의 데이터들은 각각 하나의 변수만큼이 6개 만큼의 위치를 포함하고 있는 어떠한 배열의 첫번째 포인터값을 가리키는 것이다. 즉 가운데 주황색 네모는 위 6개 배열의 맨 첫번째 데이터를 가리키며 그 옆 그린색 네모는 가리키는 6개 배열의 맨 첫번째 데이터를 가리키는 것이다. 이런식으로 반복되어 48개의 데이터를 만들어내어 2차원 배열을 만들어낸다. y가 0일때 x값이 0부터 5까지 증가하며 데이터를 만들어내고 x가 6이되었을 때 y는 1이 되며 다시 그 값에 해당하는 x값이 0부터 5까지 검증..
C 프로그래밍 (20) - 동적 메모리 2차원 배열동적메모리의 2차원 배열에 관한 내용이다. int형 포인터 사이즈만큼의 공간을 8개 할당하고 그 할당된 데이터 각각의 데이터의 포인터에 int형 사이즈 6개를 할당하는 것이다. 그림으로 풀이하면 위와 같다. 가운데 8개의 데이터들은 각각 하나의 변수만큼이 6개 만큼의 위치를 포함하고 있는 어떠한 배열의 첫번째 포인터값을 가리키는 것이다. 즉 가운데 주황색 네모는 위 6개 배열의 맨 첫번째 데이터를 가리키며 그 옆 그린색 네모는 가리키는 6개 배열의 맨 첫번째 데이터를 가리키는 것이다. 이런식으로 반복되어 48개의 데이터를 만들어내어 2차원 배열을 만들어낸다. y가 0일때 x값이 0부터 5까지 증가하며 데이터를 만들어내고 x가 6이되었을 때 y는 1이 되며 다시 그 값에 해당하는 x값이 0부터 5까지 검증..
2020.08.15 -
배열을 이용해 구구단 표도 만들 수 있다. int multiplier[20][20]은 들어갈 원소의 개수이며 다차원 배열의 예시이므로 없어도 출력은 가능하다. 다차원 배열을 통해 학생 5명의 국어, 영어 점수를 계산하는 식을 만들어보자. 행이 5, 열이 2로 총 10개의 데이터가 만들어진다. { 0, )가 의미하는 바는 일차원 배열을 할당할 때 모든 데이터의 값에 0을 넣어주겠다는 읨이다.
C 프로그래밍 (12) - 다차원 배열배열을 이용해 구구단 표도 만들 수 있다. int multiplier[20][20]은 들어갈 원소의 개수이며 다차원 배열의 예시이므로 없어도 출력은 가능하다. 다차원 배열을 통해 학생 5명의 국어, 영어 점수를 계산하는 식을 만들어보자. 행이 5, 열이 2로 총 10개의 데이터가 만들어진다. { 0, )가 의미하는 바는 일차원 배열을 할당할 때 모든 데이터의 값에 0을 넣어주겠다는 읨이다.
2020.08.07