본문 바로가기
비트 단기/c

c 7

by woohyun22 2018. 11. 16.
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

'비트 단기 > c' 카테고리의 다른 글

9 c  (0) 2018.11.20
8c  (0) 2018.11.19
c 6  (0) 2018.11.15
c 5  (0) 2018.11.13
c 4  (0) 2018.11.12

댓글