1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | #include "stdafx.h" void func74() { int *a, *b, *c, *d, *e; int *a0, *a1, *a2, *a3, *a4; int *ar[5]; //다 같은 말 //포인트 변수 5개 달라는 말 ar[0] = new int;//주소 받는다 ar[1] = new int[5]; int num = 100; ar[2] = #//메모리를 공유 받는다 //한개짜리 int br[10] = { 0 }; ar[3] = &br[0]; //br이라고 적어도 됨 ar[4] = ar[3]; *ar[0] = 100; //값을 받아야 함으로 *을 붙이자 //*안붙이면 주소임 printf("%d %d\n", *ar[0], *ar[0] + 0);//이거 두개는 같다. ar[1][0] = 0; ar[1][1] = 1; ar[1][2] = 2; ar[1][3] = 3; ar[1][4] = 4; //ex1 for (int i = 0; i < 5; i++) { printf("%d ", ar[1][i]); } //ex2 *ar[2] = 200; //한개짜리니까 무조건 *붙이자 printf("%d \n", *ar[2]); //ex3 for (int i = 0; i < 10; i++) { ar[3][i] = i * 10; printf("%d ", br[i]); } printf("\n\n"); //ex4 for (int i = 0; i < 10; i++) { printf("%d ", ar[4][i]); } delete[] ar[1]; delete ar[0]; } int main() { func74(); } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | #include "stdafx.h" void func75() { int *ptr[3];//주소받을 변수가 3개 /*ptr[0] = new int[4]; ptr[1] = new int[4]; ptr[2] = new int[4];*/ for (int i = 0; i < 3; i++) { ptr[i] = new int[4]; } //이 이후부터는 int ptr[3][4]의 문법과 같다. for (int i = 0; i < 3; i++) { for (int j = 0; j < 4; j++) { ptr[i][j] = i * 4 + j; } } for (int i = 0; i < 3; i++) { for (int j = 0; j < 4; j++) { printf("%02d %d ", ptr[i][j], &ptr[i][j]);//한줄은 주소가 연속적이지만 //*배열을 사용하면 둘쨰줄부터는 독립된주소라 이어지지않는다. } printf("\n"); } for (int i = 0; i < 3; i++) { delete[] ptr[i]; } //배열로 쓰면 필요한 만큼 데이터값을 가져올수있어서 메모리 낭비가 없다. //세로길이는 아는데 가로길이를 모를때 메모리낭비를 없애기 위해 쓴다. //c로 프로그램을 짜면 최적화하기 좋다. // } void func76() { int *ptr[6]; for (int i = 0; i < 6; i++) { ptr[i] = new int[i + 1]; } int ct = 0; for (int i = 0; i < 6; i++) { for (int j = 0; j < i+1; j++) { ptr[i][j] = ct; ct++; } } for (int i = 0; i < 6; i++) { for (int j = 0; j < i+1; j++) { printf("%02d ", ptr[i][j]); } printf("\n"); } for (int i = 0; i < 6; i++) { delete[] ptr[i]; } } int main() { func76(); } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | void func77() { //char ar[10]="Apple"; //printf("%d %d\n", sizeof(ar), strlen(ar));//배열의크기, 문자열의 길이 //char br[10] = "호랑이"; //printf("%d %d", sizeof(br), strlen(br));//한글 한글자당 2byte 영문은 1byte //while (1) { // char cr[20]; // printf("문자열을 입력하세요\n"); // scanf_s("%s", cr);//문자열은 %s 숫자는 %d 문자열을 입력하면 cr에넣어라 // // printf("당신이 입력한 문자열은 %s이고, 그 길이는 %d입니다.",cr,strlen(cr) ); //} } int main() { func77(); } | cs |
728x90
댓글