전체 글 219

[예습] 9월 30일 예습 정리

함수에 포인터로 전달을 하면 포인터의 내용을 바꿀수 있다는 것을 공부해 보았다. 1. 예시 코드 (C++)#include void function(int* nData);void function(int* nData){ *nData = 10;}int main(){ int nData1{}; nData1 = 5; printf("호출 전 nData1값 : %d\n", nData1); function(&nData1); printf("호출 후 nData1값 : %d\n", nData1);}  2. 코드 설명변수 선언과 초기화 int nData1{}; nData1 = 5;nData1이라는 변수를 선언하고 유니폼 초기화 이후  nData에 5값을 할당nData1은 메모리의 한 위치에 저장되며, 그 주소는 &nData1..

예습 2024.10.01

[강의] 9월 27일 수업정리

어제 배웠던 포인터와 함수의 기본에 대한 수업을 들었다.포인터의 경우 26일 수업정리에 더 추가를 해보겠다. 함수 (Function)함수는 특정 기능을 수행하도록 작성된 코드의 묶음이다.함수의 가장 큰 장점은 코드의 재사용성과 가독성을 높여준다는 점이 있다.함수의 기본 문법함수는 함수명 뒤에 ()가 붙어 있으면 함수라고 인식을 하게 된다.일반적인 함수의 문법은 다음과 같다.리턴타입 함수명 (인수 1, 인수 2, ..... ); 함수 예시)#include void function(int nData);int main(){}void function(int nData){} 위 예시에서는 main 함수와 function 함수를 따로 정의하여 사용하는 구조를 보여준다.함수의 핵심: 교류 방법함수의 내용물보다 중요한..

C++ 2024.09.27

[강의] 9월 26일 수업정리

오늘은 배열과 포인터의 관계에 대한 수업을 했다. 일차원 배열과 포인터#include int main(){ int arData[3]{ 3,2,1 }; int* p{}; p = &arData[0]; printf("%d\n", *p);}간단한 예시를 들어보자현재 포인터 p에 arData [0]의 주소값이 들어가 있기에 출력을 하면 3이라는 값이 나오게 될 것이다. #include int main(){ int arData[3]{ 3,2,1 }; int* p{}; p = arData; printf("%d\n", *p);}이 코드에서 p = arData;는 p = &arData [0];와 동일하게 작동한다.배열 이름인 arData는 첫 번째 요소의 주소를 나타내므로, p는 첫 번째 요소의 주소를 가지게 된다.따라..

C++ 2024.09.27

[강의] 9월 25일 수업정리

오늘도 포인터에 대한 수업을 진행하였다. 포인터와 배열의 개념 정리포인터는 일차원 배열과 유사하게 동작한다.간단히 말해, 포인터는 거대한 일차원 배열의 특정 위치를 가리키는 주소 값을 제공하는 것이다. 예제 1: 포인터의 주소값 변화#include int main(){ int nData{}; int* p{}; nData = 1; p = &nData; printf("%p\n", p); p++; printf("%p\n", p);} 위 코드에서 nData는 int형 변수이고, p는 nData의 주소를 가리키는 포인터이다.p를 출력하고 p++을 한 후 다시 출력을 하게 되면 값은 어떻게 바뀌게 되었을까? 실행을 해보게 되면 4가 증가된 것을 볼 수 있다.왜 1이 증가하지 않고 4가 증가하였을까? 그 이유는 in..

C++ 2024.09.26

[강의] 9월 24일 수업정리

오늘은 포인터에 대한 수업을 진행하였다. 포인터란?포인터는 프로그래밍 언어에서 다른 변수의 메모리 주소를 가리키는 변수이다. 즉, 포인터는 특정 변수가 저장된 메모리의 위치(주소)를 가리키며, 이 주소를 통해 해당 변수의 값을 참조하거나 조작할 수 있다. 간단한 예로, 컴퓨터 바탕화면의 바로가기를 생각해 보자. 메모장을 실행할 때 메모장 바로가기를 사용하면, 바로가기는 실제 메모장의 위치를 가리키는 역할을 하게 된다. 여기서 메모장은 변수이고, 바로가기는 포인터에 해당된다.  포인터 사용 시 주의사항널 포인터 체크는 중요하다널 포인터(NULL)는 포인터가 아무것도 가리키지 않음을 의미한다. 포인터가 유효한 주소를 가리키고 있는지 확인하지 않으면 프로그램이 잘못된 메모리에 접근할 수 있기 떄문이다.포인터가..

C++ 2024.09.25

[예습] 9월 23일 예습

1. 주소 값포인터를 알기전에 주소값을 먼저 이해해야한다.변수는 데이터를 저장하기 위해 메모리에 공간을 할당받는데, 이때 데이터를 찾기 위해 필요한 정보가 바로 주소 값(메모리의 시작 주소)이다. 주소 값은 메모리에서 데이터가 저장된 위치를 가리키는데, 예를 들어, int형 변수는 4바이트의 메모리 공간을 할당받고, 해당 변수의 시작 주소를 주소 값이라고 한다  2. 포인터 (pointer)포인터는 변수이다. 일반적으로 우리가 데이터를 저장할때는 변수에 저장하게 되는데, 포인터의 경우 데이터가 저장되어있는 변수의 주소값을 저장한다.실제 메모리의 위치는 아니지만 포인터 변수는 int변수의 시작 주소를 저장해 변수를 가리키고 있다고 생각하면 된다.또한 포인터도 변수이기에 메모리 어딘가에 저장되기 때문에 포인..

예습 2024.09.23

[강의] 9월 13일 수업정리

문제 1. 크기가 가로 4, 세로 5인 2차원 배열을 다음과 같이 채우고 출력하는 프로그램12일날 풀었던 방식은 if를 사용하여 풀었지만 이번에는 if를 사용하지 않고 프로그램을 만들어볼려고한다. #include int main(){ int arArray[5][4]; int nData{}; int nAdd{}; nAdd = 1; for(int i = 0; i nAdd는 1 또는 -1의 값을 가지며, 이를 통해 숫자의 증가/감소를 조절각 행이 끝날 때 nData에 4를 추가하는 방식으로 다음 행의 시작값을 설정

C++ 2024.09.14

[강의] 9월 12일 수업정리

문제 1. 크기가 가로 4, 세로 5인 2차원 배열을 다음과 같이 채우고 출력하는 프로그램  1 2 3 48 7 6 59 10 11 1216 15 14 1317 18 19 20 #include int main(){ const int nSize1 = 5; const int nSize2 = 4; int arData[nSize1][nSize2]{}; int nData{}; int nCount{}; int nRemainder{}; nData = 1; for (int i = 0; i = 0; j--) { arData[i][j] = nData; nData++; } } } for (int i = 0; i 변수 설명nSize1 및 nSize2: 배열의 크기를 정의합니다. nSize1은 행..

C++ 2024.09.12

[강의] 9월 11일 수업정리

문제 1. 2차원 배열에 5씩 끊어서 25까지 출력하는 프로그램 #include int main(){ const int nSize1 = 5; const int nSize2 = 5; int arData[nSize1][nSize2]{}; int nData{}; nData = 1; for (int i = 0; i const를 사용하여 nSize1과 nSize2를 5로 설정하여 배열의 크기를 고정arData는 nSize1 x nSize2 크기의 2차원 배열로 선언nData는 1부터 시작하여 배열을 채움2중 for 루프를 사용하여 배열을 채우고, 각 값을 printf로 출력 문제 2. 5x5 마방진 프로그램#include int main(){ int arData[5][5]{}; int nIndex1{}; int ..

C++ 2024.09.11

[예습] 9월 9일 예습

다차원 배열 Multidimensional Arrays배열의 요소는 배열을 포함하여 모든 자료형일 수 있다. 배열을 가진 배열을 다차원 배열(multidimensional array)이라고 한다. int arArray[2][4]; 위 배열은 2개의 첨자를 가지고 있으므로 2차원 배열이다.2차원 배열에서 첫 번쨰(왼쪽) 첨자는 row(행)으로 생각하고 두 번째(오른쪽) 첨자를 column(열)로 생각하는게 편리하다.이것을 행-우선(row-major)순위라고 한다간단하게 생각한다면 학교를 기준으로 몇반(첫 번째 첨자), 몇번(두 번쨰 첨자) 라고 생각하면 이해가 쉬울것이다.위의 2차원 배열을 다음과 같이 배열이 된다[0][0] [0][1] [0][2] [0][3][1][0] [1][1] [1][2] [1][..

예습 2024.09.10