본문 바로가기
반응형

배열10

[C++] 배열이란 무엇인가 배열은 자료형을 담는 자료구조입니다. 쉽게 이해하려면 표를 떠올리시면 됩니다. 자료를 표로 정리해 놓으면 한눈에 보기 좋은 것처럼 자료를 배열 형태로 저장해 놓으면 관리가 편합니다. 2차원 배열이 표와 비슷하며 2차원 외에도 모든 차원의 배열이 정의될 수 있습니다. 코딩에서 등장하는 모든 것은 필요에 의해 정의된 것입니다. 배열이 없는 것보다 있는 것이 편리하기 때문에 배열을 정의해서 사용합니다. 배열 정의하는 방법 배열은 아래와 같이 정의합니다. 자료형 배열이름[원소개수] = {원소1,원소2,...}; 원소가 1,2,3인 배열 a를 정의하면 아래와 같습니다. int a[3]={1,2,3}; 배열에서 이름이 갖는 의미 위에서 정의한 배열을 한번 출력 해볼까요? 아마 아래와 같이 출력하려고 할 것입니다. .. 2022. 8. 12.
[C언어] 문자열에서 원하는 개수 복사 (strncpy) 아래와 같은 문자열이 있다고 합시다. "hello world" 이 문장에서 hello 만 복사해 오고 싶다면 strncpy 함수를 사용하면 됩니다. strncpy 함수는 string.h 헤더를 include 해줘야 사용할 수 있습니다. strncpy 함수는 아래와 같은 형식으로 사용합니다. strncpy(my_str,"hello world",5) "hello world" 라는 문장에서 5개 문자를 my_str 이라는 배열에 복사하겠다 라는 뜻입니다. 위 코드가 실행되면 my_str 이라는 배열에 "hello"가 입력됩니다. 당연히 먼저 my_str 이라는 배열을 정의해주어야 합니다. 아래 코드를 통해 확인해봅시다. #include #include int main() { char my_str[6]; str.. 2022. 7. 22.
[C언어] 배열 명과 포인터의 차이 아래와 같이 배열을 정의합시다. int ar[3]={1,2,3}; 배열 명 ar에는 배열의 첫번째 요소 ar[1] 의 주소가 입력됩니다. 주소가 입력되었으니 일종의 포인터 역할을 하는 것입니다. 아래와 같이 배열의 이름을 포인터변수에 입력할 수도 있습니다. int *p=ar; p와 ar에는 ar[1] 의 주소라는 같은 값이 입력되어 있습니다. 이때 둘의 차이는 무엇일까요? 1. ar에 sizeof 를 적용하면 배열의 크기가 출력되지만, p는 포인터 하나의 크기가 출력됨. 2. ar에 입력된 값은 변경이 불가능함. p에 입력된 값은 변경 가능. 2022. 7. 20.
[C언어] 포인터 배열의 타입 배열을 하나 정의합시다. int arr[5]; arr에는 무엇이 저장될까요. arr에는 첫번째 원소의 주소가 입력됩니다. 따라서 arr의 타입은 포인터형입니다. 이번에는 포인터배열을 하나 정의합시다. 포인터배열의 원소는 변수들의 주소입니다. int *arr2[5] 배열의 이름은 포인터인데, 포인터배열인 arr2의 타입은 무엇일까요? arr2도 첫번째 원소의 주소가 입력될 것입니다. 첫번째 원소는 어떤 변수의 주소일 것입니다. arr2 에는 주소의 주소가 입력된느 것입니다. arr2는 포인터의 포인터, 즉 더블포인터입니다. 포인터배열의 타입은 더블포인터입니다. 2022. 7. 7.
C언어 배열을 선언과 동시에 초기화하는 방법 중괄호를 이용합니다. #include int main() { int myarr[3]={1,10,100}; printf("myarr[0] 은 %d 입니다. \n",myarr[0]); printf("myarr[1] 은 %d 입니다. \n",myarr[1]); printf("myarr[2] 은 %d 입니다. \n",myarr[2]); return 0; } 2022. 6. 22.
C언어 배열이란 무엇이며, 왜 존재하며, 어떻게 정의하나 배열이란 무엇인가? 배열은 둘 이상의 변수를 모아놓은 것을 말한다. 왜 존재하나? 변수 여러개를 편하게 정의하기 위해 존재한다. 또는 문자열 정의에 사용된다. 어떻게 정의하나? 아래와 같은 형식으로 정의한다. 자료형 배열이름 [길이]; 배열을 정의하고 각 원소 값을 지정하는 예시는 아래와 같다. #include int main() { int myarr[3]; myarr[0]=1; myarr[1]=10; myarr[2]=100; printf("myarr[0] 은 %d 입니다. \n",myarr[0]); printf("myarr[1] 은 %d 입니다. \n",myarr[1]); printf("myarr[2] 은 %d 입니다. \n",myarr[2]); return 0; } 2022. 6. 22.
[C언어] 다차원 배열 (2차원 배열) 2차원 이상의 배열을 만들 수 있습니다. 2차원 배열은 아래와 같이 선언합니다. int arr2[3][2] 3행 2열의 배열을 뜻합니다. 선언과 동시에 초기화하는 방법은 아래와 같습니다. #include int main(void) { int arr2[3][2]={ {1,2},{3,4},{5,6} }; } 아래 배열을 만든 것입니다. 1 2 3 4 5 6 일부를 비워두면 0으로 초기화됩니다. 2022. 3. 31.
[C언어 함수의 인자로 배열 입력받기 배열의 값을 함수 인자로 넣는 것을 불가능하다. 포인터 변수를 이용하여 배열 인자의 주소값은 받을 수 있다. 입력받은 주소값을 이용하여 배열의 값에 접근하는 것은 가능하다. 아래 예시는 배열의 주소를 입력받아 배열 값을 출력하는 함수이다. #include void PrintArr(int *p_ar,int length) { int i; for(i=0; i < length; i++) { printf("%d\n",p_ar[i]); } } int main(void) { int ar[3]={1,2,3}; PrintArr(ar,sizeof(ar)/sizeof(int)); } 2022. 3. 31.
[C언어] 포인터를 배열 이름처럼 사용 배열 이름은 포인터입니다. 포인터변수를 하나 만들고 배열 이름을 입력하면 해당 포인터변수를 배열 이름처럼 사용할 수 있습니다. int main(void) { int ar[2]={10,20}; int *p_ar=ar; printf("%p\n",p_ar); printf("%d",p_ar[0]); } 배열 ar 을 p_ar 에 입력하면 배열 ar의 주소가 포인터변수 p_ar에 할당됩니다. 배열 ar 자체가 주소였는데, p_ar 도 같은 주소이므로 p_ar 을 ar처럼 사용할 수 있게 된 것입니다. 2022. 3. 30.
[C언어] 배열 정의하기 배열을 정의하는 방법은 아래와 같습니다. 자료형을 선언할 때 대괄호 안에 배열의 길이를 넣어주면 됩니다. 아래 배열은 자료형이 정수이고 길이가 5인 배열입니다. int ar[5]; 각 배열 요소는 0 부터 시작됩니다. ar[0] 이 첫번째 요소이고, ar[4] 가 마지막 요소인 다섯번째 요소입니다. 아래는 배열 정의 예시입니다. #include int main(void) { int ar[5]; ar[0]=10; printf("첫번재 요소: %d",ar[0]); } 2022. 3. 29.
반응형