Presentation is loading. Please wait.

Presentation is loading. Please wait.

포인터와 배열 조 병 규 한 국 교 통 대 학 교 SQ Lab..

Similar presentations


Presentation on theme: "포인터와 배열 조 병 규 한 국 교 통 대 학 교 SQ Lab.."— Presentation transcript:

1 포인터와 배열 조 병 규 한 국 교 통 대 학 교 SQ Lab.

2 포인터 형(pointer type) * type 확보 bit 크기 수록 값 32-bit 기억 장소 주소(address)
자료를 수록하는 기억장소의 위치(주소:address)를 수록할 수 있는 공간으로 32비트의 기억 공간이 확보됨 SQ Lab.

3 자료형 *변수이름 [, *변수이름] . . . ; 포인터형 변수(포인터)의 확보
• type은 int, float, char, 기타의 자료형이며 변수이름 앞에 *를 기술한다. • 자료를 수록하는 기억장소의 위치(address)를 수록할 수 있는 32비트의 기억 공간이 확보됨 • 포인터형 변수도 변수이므로 자체의 기억장소 주소가 있고, 수록되는 값도 기억장소의 주소이며 모든 주소는 정수로 표현된다. • 포인터형 변수에 수록된 값(기억장소 주소) 또는 변수 자체를 포인터(pointer)라 하고, 임의의 기억장소를 간접 지정하려고 할 경우와 문자열을 처리할 경우 사용 SQ Lab.

4 &변수이름 포인터 연산자 & (변수의 주소 취득) 변수이름 앞에 &를 기술하면
해당 변수(기억장소)의 주소(address)를 취득한다. SQ Lab.

5 *포인터형변수 포인터 연산자 * (기억장소의 간접 지정) 포인터형변수에 수록된 값(주소)의 장소를 지적 하든가
지적된 장소에 수록된 값을 참조한다. SQ Lab.

6 (예) 포인터(정수형) /*001*/ // pointer01cNcpp /*002*/
/*003*/ #include "iostream" /*004*/ /*005*/ using namespace std; /*006*/ /*007*/ void main() /*008*/ { /*009*/ int i; /*010*/ cout << "\n i address=>(" << &i << ")"; /*011*/ /*012*/ int *iPointer; /*013*/ cout << "\n\n iPointer address=>(" << &iPointer << ")"; /*014*/ SQ Lab.

7 /*016*/ *iPointer = 100; // i = 100; /*017*/
/*018*/ cout << "\n\n i=>" << i; /*019*/ cout << "\n *iPointer=>" << *iPointer; /*020*/ /*021*/ *iPointer = *iPointer + 23; /*022*/ cout << "\n\n i=>" << i; /*023*/ cout << "\n *iPointer=>" << *iPointer; /*024*/ /*025*/ cout << "\n\n\n Type any characte<Enter> : "; /*026*/ cin >> i; /*027*/ } SQ Lab.

8 i(0x0012FF7C) iPointer(0x0012FF78) i(0x0012FF7C) iPointer(0x0012FF78)
/*009*/ int I; i(0x0012FF7C) /*010*/ cout << "\n i address=>(" << &i << ")"; /*012*/ int *iPointer; iPointer(0x0012FF78) /*015*/ iPointer = &i; i(0x0012FF7C) iPointer(0x0012FF78) (0x0012FF7C)

9 iPointer(0x0012FF78) i(0x0012FF7C) (0x0012FF7C) 100
/*016*/ *iPointer = 100; // i = 100; i(0x0012FF7C) 100 iPointer(0x0012FF78) (0x0012FF7C) /*018*/ cout << "\n\n i=>" << i; /*019*/ cout << "\n *iPointer=>" << *iPointer;

10 iPointer(0x0012FF78) i(0x0012FF7C) (0x0012FF7C) 123
/*021*/ *iPointer = *iPointer + 23; i(0x0012FF7C) 123 iPointer(0x0012FF78) (0x0012FF7C) /*022*/ cout << "\n\n i=>" << i; /*023*/ cout << "\n *iPointer=>" << *iPointer;

11 (예) 포인터(실수형, 문자형) /*001*/ // pointer02cNcpp /*002*/
/*003*/ #include "iostream" /*004*/ /*005*/ using namespace std; /*006*/ /*007*/ void main() /*008*/ { /*009*/ float f; /*010*/ cout << "\n f address=>(" << &f << ")"; /*011*/ /*012*/ float *fPointer; /*013*/ cout << "\n\n fPointer address=>(" << &fPointer << ")"; /*014*/ /*015*/ fPointer = &f; /*016*/ *fPointer = 12.00; // f = 12.00; /*017*/ SQ Lab.

12 /*018*/ cout << "\n\n f=>" << f;
/*019*/ cout << "\n *fPointer=>" << *fPointer; /*020*/ /*021*/ *fPointer = *fPointer ; /*022*/ cout << "\n\n f=>" << f; /*023*/ cout << "\n *fPointer=>" << *fPointer; /*024*/ ///////////////////////////////////////////////////////////////// /*025*/ char c; /*026*/ cout << "\n\n\n c address=>(" << &c << ")"; /*027*/ /*028*/ char *cPointer; /*029*/ cout << "\n\n cPointer address=>(" << &cPointer << ")"; /*030*/ /*031*/ cPointer = &c; /*032*/ *cPointer = 'X'; // c = 'X'; /*033*/ SQ Lab.

13 /*034*/ cout << "\n\n c=>" << c;
/*035*/ cout << "\n *cPointer=>" << *cPointer; /*036*/ /*037*/ cout << "\n\n\n Type any characte<Enter> : "; /*038*/ cin >> c; /*039*/ } SQ Lab.

14 string1 (222222) string2 string3 string2 (444444)
/*009*/ char *string1 = "first string", /*010*/ *string2, /*011*/ *string3; (222222) first string\0 string1 (222222) string2 string3 /*013*/ string2 = "second string"; string2 (444444) (444444) second string\0

15 string3 (666666) (666666) (666666) string3 understand?...\0 (666666)
/*015*/ string3 = new char; string3 (666666) (666666) /*016*/ cout << "\n type a string : "; /*017*/ cin >> string3; string3 (666666) (666666) understand?...\0

16 string1 (222222) string2 (444444) (666666) string3 understand?...\0
first string\0 string2 (444444) (444444) second string\0 string3 (666666) (666666) understand?...\0 /*019*/ cout << "\n string1=>" << string1 /*020*/ << "\n string2=>" << string2 /*021*/ << "\n string3=>" << string3; SQ Lab.

17 배열(array) 일반적으로 특성(구조, 성격)이 같은 원소들이 인접하게 연속적으로 배치된 것(기억 장소) SQ Lab.

18 1차원 배열 (one dimensional array)
[1] 1차원 배열의 선언 자료형 배열이름[원소개수]; 각 원소를 구분하기 위하여 첫 번째 원소부터 0, 1, 2, 3, ,n의 순서대로 번호가 부여됨 [2] 1차원 배열의 초기 값 설정 자료형 배열이름[배열크기] = {첫번쩨원소값,두번째원소값, . . .,마지막원소값}; [3] 1차원 배열의 특정 원소 지적 배열이름[원소번호] SQ Lab.

19 (예) 1차원 배열 /*001*/ // array0101cNcpp /*002*/
/*003*/ #include "iostream" /*004*/ /*005*/ using namespace std; /*006*/ /*007*/ void main() /*008*/ { /*009*/ int oneArray[6]; /*010*/ /*011*/ oneArray[0] = 0; /*012*/ oneArray[1] = 1; /*013*/ oneArray[2] = 3; /*014*/ oneArray[3] = 5; /*015*/ oneArray[4] = 7; /*016*/ oneArray[5] = 9; SQ Lab.

20 /*018*/ cout << "\n oneArray[1] => " << oneArray[1]
/*017*/ /*018*/ cout << "\n oneArray[1] => " << oneArray[1] /*019*/ << "\n oneArray[3] => " << oneArray[3] /*020*/ << "\n oneArray[5] => " << oneArray[5]; /*021*/ /*022*/ cout << "\n\n Type any character<Enter> : "; /*023*/ cin >> oneArray[0]; /*024*/ } SQ Lab.

21 [0] [1] [2] [3] [4] [5] [0] [1] [2] [3] [4] [5]
/*009*/ int oneArray[6]; oneArray [0] [1] [2] [3] [4] [5] /*011*/ oneArray[0] = 0; /*012*/ oneArray[1] = 1; /*013*/ oneArray[2] = 3; /*014*/ oneArray[3] = 5; /*015*/ oneArray[4] = 7; /*016*/ oneArray[5] = 9; int oneArray[6] = {0, 1, 3, 5, 7, 9}; oneArray 1 3 5 7 9 [0] [1] [2] [3] [4] [5] SQ Lab.

22 /*018*/ cout << "\n oneArray[1] => " << oneArray[1]
SQ Lab.

23 2차원 배열 (two dimensional array)
[1] 2차원 배열의 선언 자료형 배열이름[줄수][칸수]; 각 원소를 구분하기 위한 줄 번호와 칸 번호가 0, 부터 순서적으로 부여됨 SQ Lab.

24 [2] 2차원 배열의 초기 값 설정 type 배열이름[줄수][칸수] = { {첫 번째 줄의 값} {두 번째 줄의 값} .
{마지막 번째 줄의 값} }; [3] 2차원 배열의 특정 원소 지적 배열이름[줄번호][칸번호] SQ Lab.

25 (예) 2차원 배열 /*001*/ // array0201cNcpp /*002*/
/*003*/ #include "iostream" /*004*/ /*005*/ using namespace std; /*006*/ /*007*/ void main() /*008*/ { /*009*/ int twoArray[2][4]; /*010*/ /*011*/ twoArray[0][0] = 1; /*012*/ twoArray[0][1] = 3; /*013*/ twoArray[0][2] = 5; /*014*/ twoArray[0][3] = 7; /*015*/ SQ Lab.

26 /*021*/ // int twoArray[2][4] = {{1, 3, 5, 7}, {2, 4, 6, 8}}; /*022*/
/*020*/ /*021*/ // int twoArray[2][4] = {{1, 3, 5, 7}, {2, 4, 6, 8}}; /*022*/ /*023*/ cout << "\n twoArray[0][0] => " << twoArray[0][0] /*024*/ << "\n twoArray[0][2] => " << twoArray[0][2] /*025*/ << "\n twoArray[1][1] => " << twoArray[1][1] /*026*/ << "\n twoArray[1][3] => " << twoArray[1][3]; /*027*/ /*028*/ cout << "\n\n Type any character<Enter> : "; /*029*/ cin >> twoArray[0][0]; /*030*/ } SQ Lab.

27 twoArray [0][0] [0][1] [0][2] [0][3] [1][0] [1][1] [1][2] [1][3]
/*009*/ int twoArray[2][4]; twoArray [0][0] [0][1] [0][2] [0][3] [1][0] [1][1] [1][2] [1][3] twoArray [0] [1] [2] [3] SQ Lab.

28 int twoArray[2][4] = {{1, 3, 5, 7}, {2, 4, 6, 8}};
/*015*/ /*016*/ twoArray[1][0] = 2; /*017*/ twoArray[1][1] = 4; /*018*/ twoArray[1][2] = 6; /*019*/ twoArray[1][3] = 8; twoAarray [0] [1] [2] [3] 1 3 5 7 2 4 6 8 int twoArray[2][4] = {{1, 3, 5, 7}, {2, 4, 6, 8}}; SQ Lab.

29 /*023*/ cout << "\n twoArray[0][0] => " << twoArray[0][0]
/*028*/ cout << "\n\n Type any character<Enter> : "; /*029*/ cin >> twoArray[0][0]; SQ Lab.

30 3차원 배열 (three dimensional array)
[1] 3차원 배열의 선언 자료형 배열이름[면수][줄수][칸수]; 각 원소를 구분하기 위gkdu 면 번호, 줄 번호 그리고 칸 번호가 0, 부터 순서적으로 부여됨 SQ Lab.

31 [2] 3차원 배열의 초기 값 설정 자료형 배열이름[줄수][칸수] = { { {첫 번째 면의 첫 번째 줄의 값}
자료형 배열이름[줄수][칸수] = { { {첫 번째 면의 첫 번째 줄의 값} {첫 번째 면의 두 번째 줄의 값} . {첫 번째 면의 끝 번째 줄의 값} } {마지막 면의 첫 번째 줄의 값} {마지막 면의 두 번째 줄의 값} {마지막 면의 끝 번째 줄의 값} }; SQ Lab.

32 [3] 3차원 배열의 특정 원소 지적 배열이름[면번호][줄번호][칸번호] SQ Lab.

33 (예) 3차원 배열 /*001*/ // array0301cNcpp /*002*/
/*003*/ #include "iostream" /*004*/ /*005*/ using namespace std; /*006*/ /*007*/ void main() /*008*/ { /*009*/ int threeArray[2][2][3]; /*010*/ /*011*/ //1st plane /*012*/ threeArray[0][0][0] = 0; //1st row /*013*/ threeArray[0][0][1] = 1; /*014*/ threeArray[0][0][2] = 2; /*015*/ threeArray[0][1][0] = 10; //2nd row /*016*/ threeArray[0][1][1] = 11; /*017*/ threeArray[0][1][2] = 12; SQ Lab.

34 /*019*/ threeArray[1][0][0] = 100; //1st row
/*018*/ //2nd plane /*019*/ threeArray[1][0][0] = 100; //1st row /*020*/ threeArray[1][0][1] = 101; /*021*/ threeArray[1][0][2] = 102; /*022*/ threeArray[1][1][0] = 110; //2nd row /*023*/ threeArray[1][1][1] = 111; /*024*/ threeArray[1][1][2] = 112; /*025*/ /*026*/ // int threeArray[2][2][3] = { /*027*/ // {{0, 1, 2}, {10, 11, 12}}, /*028*/ // {{100, 101, 102}, {110, 111, 112}} /*029*/ // }; /*030*/ /*031*/ cout << "\n threeArray[0][0][0] => " << threeArray[0][0][0] /*032*/ << "\n threeArray[0][1][0] => " << threeArray[0][1][0] /*033*/ << "\n threeArray[1][0][1] => " << threeArray[1][0][1] /*034*/ << "\n threeArray[1][1][1] => " << threeArray[1][1][1]; /*035*/ /*036*/ cout << "\n\n Type any character<Enter> : "; /*037*/ cin >> threeArray[0][0][0]; /*038*/ } SQ Lab.

35 threeArray 칸 [0] [1] [2] 줄 면 /*009*/ int threeArray[2][2][3]; SQ Lab.
면[0] [0] [1] [2] threeArray 면[1] [0] [1] [2] SQ Lab.

36 int threeArray[2][2][3] = { {{0, 1, 2}, {10, 11, 12}},
/*012*/ - /*024*/ threeArray 면[0] [0] [1] [2] 1 2 10 11 12 threeArray 면[1] [0] [1] [2] 100 101 102 110 111 112 int threeArray[2][2][3] = { {{0, 1, 2}, {10, 11, 12}}, {{100, 101, 102}, {110, 111, 112}} }; SQ Lab.

37 /*031*/ cout << "\n threeArray[0][0][0] => " << threeArray[0][0][0]
/*036*/ cout << "\n\n Type any character<Enter> : "; /*037*/ cin >> threeArray[0][0][0]; SQ Lab.

38 크기 비설정 배열 [1] 배열의 선언 [2] 배열의 특정 원소 지적 자료형 배열이름[ ] = {초기 값 설정};
자료형 배열이름[ ] = {초기 값 설정}; [ ]에서 크기를 설정하지 않으면 1차원 배열에만 적용되는 것으로 반드시 초기 값을 설정하여야 함 확보되는 기억 장소는 초기 값의 수만큼 확보되는 것이 아니라 시스템에서 사용할 수 있을 만큼의 기억 장소가 확보됨 [2] 배열의 특정 원소 지적 배열이름[첨자] 첨자의 범위는 0부터 n까지이다. SQ Lab.

39 (예) 크기 비설정 배열 /*001*/ // array0001cNcpp /*002*/
/*003*/ #include "iostream" /*004*/ /*005*/ using namespace std; /*006*/ /*007*/ void main() /*008*/ { /*009*/ int intArray[] = {1, 3, 5}; /*010*/ /*011*/ cout << "\n intArray[0] => " << intArray[0] /*012*/ << "\n intArray[1] => " << intArray[1] /*013*/ << "\n intArray[2] => " << intArray[2]; /*014*/ /*015*/ intArray[3] = 7; /*016*/ cout << "\n intArray[3] => " << intArray[3]; /*017*/ SQ Lab.

40 (예) 크기 비설정 배열 /*018*/ intArray[5] = 9;
/*019*/ cout << "\n intArray[5] => " << intArray[5]; /*020*/ /*021*/ cout << "\n\n Type any character<Enter> : "; /*022*/ cin >> intArray[0]; /*023*/ } SQ Lab.

41 intArray 1 3 5 . . . [0] [1] [2] [3] [4] [5] [n] intArray 1 3 5 7 9
/*007*/ int intArray[] = {1, 3, 5}; intArray 1 3 5 . . . [0] [1] [2] [3] [4] [5] [n] /*013*/ intArray[3] = 7; /*016*/ intArray[5] = 9; intArray 1 3 5 7 9 . . . [0] [1] [2] [3] [4] [5] [n] SQ Lab.

42 배열과 포인터 포인터 = 배열이름; 배열을 선언하여 기억 장소가 확보될 때
내부적으로는 배열 이름에 첫 번째 원소의 주소가 수록됨 따라서 배열 이름을 포인터에 수록하여 배열을 처리할 수도 있임 SQ Lab.

43 (예) 배열과 포인터 /*001*/ // arrayNpointer01cNcpp /*002*/
/*003*/ #include "iostream" /*004*/ /*005*/ using namespace std; /*006*/ /*007*/ void main() /*008*/ { /*009*/ int intArray[5] = {11, 22, 33, 44, 55}; /*010*/ cout << "\n intArray=>(" << intArray << ")"; /*011*/ /*012*/ int* intPointer; /*013*/ intPointer = intArray; /*014*/ cout << "\n\n intPointer=>(" << intPointer << ")" /*015*/ << "=>" << *intPointer; /*016*/ SQ Lab.

44 /*017*/ intPointer = intPointer + 1;
/*018*/ cout << "\n\n intPointer=>(" << intPointer << ")" /*019*/ << "=>" << *intPointer; /*020*/ /*021*/ intPointer = intPointer + 2; /*022*/ cout << "\n\n intPointer=>(" << intPointer << ")" /*023*/ << "=>" << *intPointer; /*024*/ /*025*/ intPointer = intArray + 4; /*026*/ cout << "\n\n intPointer=>(" << intPointer << ")" /*027*/ << "=>" << *intPointer; /*028*/ /*029*/ cout << "\n\n Type any character<Enter> : "; /*030*/ cin >> intArray[0]; /*031*/ } SQ Lab.

45 (0x0012FF6C) intPointer (0x0012FF6C) + 1 = (0x0012FF70) intPointer
/*009*/ int intArray[5] = {11, 22, 33, 44, 55}; intArray (0x0012FF6C) (0x0012FF70) (0x0012FF74) (0x0012FF78) (0x0012FF7C) 11 22 33 44 55 [0] [1] [2] [3] [4] /*011*/ int* intPointer; intPointer /*012*/ intPointer = intArray; intPointer (0x0012FF6C) /*017*/ intPointer = intPointer + 1; 정수형 주소 값을 증가시킬 경우에는 내부적으로 4(바이트)가 증가됨 intPointer (0x0012FF6C) = (0x0012FF70) SQ Lab.

46 (0x0012FF70) (0x0012FF78) (0x0012FF6C) (0x0012FF7C)
/*021*/ intPointer = intPointer + 2; // 내부적으로 8(바이트)가 증가됨 intPointer (0x0012FF70) = (0x0012FF78) /*025*/ intPointer = intArray + 4; // 내부적으로 16(바이트)가 증가됨 intArray intPointer (0x0012FF6C) = (0x0012FF7C) SQ Lab.

47 int*, long*, unsigned* , unsigned long* short*, unsigned short* 4 2
[참고] 다음은 각 자료형의 주소를 1 증가시킬 경우의 증가 값을 정리한 것임 자료형 증가 값 int*, long*, unsigned* , unsigned long* short*, unsigned short* 4 2 float* double*, long double* 8 char*, signed char*, unsigned char* 1 SQ Lab.

48 배열로의 문자열 처리 char 배열이름[크기] = "문자열"; char 배열이름[ ] = "문자열";
[1] 문자형 배열 선언과 문자열 수록 char 배열이름[크기] = "문자열"; char 배열이름[ ] = "문자열"; 문자열을 배열에 수록 시켜 처리하려면 배열 선언 시 크기를 설정하지 않고 초기 값으로 수록하여 처리하는 것이 일반적이나 배열의 크기를 설정할 경우 문자열을 구분하는 ‘\0’문자가 수록될 수 있는 크기의 공간을 확보하여야 함. 한 번 초기 값으로 수록시킨 배열의 문자열을 변경하려면 배열의 각 원소에 대한 처리로 해 주어야 함 SQ Lab.

49 (예) 배열에서의 문자열 처리 /*001*/ // stringArray01cNcpp /*002*/
/*003*/ #include "iostream" /*004*/ /*005*/ using namespace std; /*006*/ /*007*/ void main() /*008*/ { /*009*/ char string1[10] = "ABC"; /*010*/ cout <<"\n string1=>" << string1; /*011*/ /*012*/ string1[0] = 'C'; /*013*/ string1[1] = '&'; /*014*/ string1[2] = 'C'; /*015*/ string1[3] = '+'; /*016*/ string1[4] = '+'; /*017*/ string1[5] = '\0'; SQ Lab.

50 /*019*/ cout <<"\n string1=>" << string1;
/*018*/ /*019*/ cout <<"\n string1=>" << string1; /*020*/ ///////////////////////////////////////////////////////// /*021*/ char string2[4] = "XYZ"; /*022*/ cout <<"\n\n string2=>" << string2; /*023*/ /*024*/ string2[0] = 'o'; /*025*/ string2[1] = 'n'; /*026*/ string2[2] = 'e'; /*027*/ /*028*/ cout <<"\n string2=>" << string2; /*029*/ /*030*/ cout << "\n\n Type any character<Enter> : "; /*031*/ cin >>string1[0]; /*032*/ } SQ Lab.

51 [참고] string1 = "C&C++"; //이와 같이 기술하면 안됨
/*009*/ char string1[10] = "ABC"; string1 A B C \0 [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] /*012*/ string1[0] = 'C'; /*013*/ string1[1] = '&'; /*014*/ string1[2] = 'C'; /*015*/ string1[3] = '+'; /*016*/ string1[4] = '+'; /*017*/ string1[5] = '\0'; string1 C & + \0 [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [참고] string1 = "C&C++"; //이와 같이 기술하면 안됨 SQ Lab.

52 [참고] 배열인 string2의 내용을 변경하기 위하여 다음과 같이 기술할 수 없다. string2= "one";
/*021*/ char string2[4] = "XYZ"; string2 X Y Z \0 [0] [1] [2] [3] /*024*/ string2[0] = 'o'; /*025*/ string2[1] = 'n'; /*026*/ string2[2] = 'e'; string2 o n e \0 [0] [1] [2] [3] [참고] 배열인 string2의 내용을 변경하기 위하여 다음과 같이 기술할 수 없다. string2= "one"; SQ Lab.

53 [2] cin으로의 문자열 입력 char 배열이름[크기]; cin >> 배열이름;
자판에서 입력된 문자열을 지정한 배열에 수록함 확보시킨 공간의 크기보다 입력된 문자열의 크기가 더 크더라도 공간이 자동 확장되어 문자열 모두 수록됨 입력된 문자열은 공백, 탭, 리턴문자로 구분함 SQ Lab.

54 (예) /*001*/ // stringArray02cNcpp /*002*/ /*003*/ #include "iostream"
/*004*/ /*005*/ using namespace std; /*006*/ /*007*/ void main() /*008*/ { /*009*/ char string[100]; /*010*/ /*011*/ cout << "\n Type a string : "; /*012*/ cin >> string; /*013*/ cout << "\n string=>" << string; /*014*/ /*015*/ cout << "\n\n Type any character<Enter> : "; /*016*/ cin >> string; /*017*/ } SQ Lab.

55 [0] [1] [2] [3] [4] [0] [1] [2] [3] [4]
/*009*/ char string[100]; string [0] [1] [2] [3] [4] [99] /*012*/ cin >> string; (1) 입력된 문자열이 배열의 크기보다 같거나 작을 경우 입력된 문자열이 수록되고 뒤에 '\0'가 수록됨 string X Y Z \0 [0] [1] [2] [3] [4] [99] SQ Lab.

56 기억 장소가 확장되어 입력된 문자열이 수록되고 뒤에 '\0'가 수록되나 실행 마지막에 에러 창이 나타남
(2) 입력된 문자열이 배열의 크기보다 클 경우 기억 장소가 확장되어 입력된 문자열이 수록되고 뒤에 '\0'가 수록되나 실행 마지막에 에러 창이 나타남 SQ Lab.

57 실습문제 [실습문제 1] 1차원 배열 n개의 원소로 이루어진 배열의 각 원소 값을 자판으로부터 입력하여 수록하고,
n개의 원소로 이루어진 배열의 각 원소 값을 자판으로부터 입력하여 수록하고, 홀수(또는 짝수) 번호 원소들만의 값을 더한 값을 화면에 나타나게 하시오. SQ Lab.

58 n개의 원소로 이루어진 배열의 각 원소 값을 자판으로부터 입력하여 수록하고,
[실습문제 2] 검색 n개의 원소로 이루어진 배열의 각 원소 값을 자판으로부터 입력하여 수록하고, 임의의 값 x를 자판으로부터 입력받아 그 값이 배열의 몇 번째 원소에 있는지를 알아보는 프로그램을 작성하시오. SQ Lab.

59 5(n)개의 원소로 이루어진 배열의 각 원소 값을 자판으로부터 입력하여 수록하고,
[실습문제 3] 정렬 5(n)개의 원소로 이루어진 배열의 각 원소 값을 자판으로부터 입력하여 수록하고, 작은 값부터 큰 값 순으로 재배치하여 화면에 나타내는 프로그램을 작성하시오. SQ Lab.

60 (3x4)인 두 행렬의 대응 항목에 대한 더하기 결과를 화면에 나타내게 하시오. 예를 들어 두 행렬이 다음과 같을 경우 X
[실습문제 4] 2차원 배열 (3x4)인 두 행렬의 대응 항목에 대한 더하기 결과를 화면에 나타내게 하시오. 예를 들어 두 행렬이 다음과 같을 경우 X 1 3 5 7 2 4 6 8 9 12 y 10 11 12 13 20 21 22 23 30 31 32 33 SQ Lab.

61 (2x2x3)인 3차원 배열의 배열의 각 원소 값을 자판으로부터 입력하여 수록하고,
[실습문제 5] 3차원 배열 (2x2x3)인 3차원 배열의 배열의 각 원소 값을 자판으로부터 입력하여 수록하고, 배열의 값을 나타내고, 모든 원소의 값을 더한 값을 화면에 나타내게 하시오. SQ Lab.


Download ppt "포인터와 배열 조 병 규 한 국 교 통 대 학 교 SQ Lab.."

Similar presentations


Ads by Google