ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๐Ÿญ ๊ตฌ์กฐ์ฒด์˜ ๊ฐœ๋…

 

๐Ÿฌ ๊ตฌ์กฐ์ฒด(struct)

โœ“ ์„œ๋กœ ๋‹ค๋ฅธ ์ž๋ฃŒํ˜•์„ ๊ฐ–๋Š” ์ž๋ฃŒ๋“ค์˜ ๋ชจ์ž„ โ‡จ ํ•˜๋‚˜์˜ ์ž๋ฃŒํ˜•์œผ๋กœ ์ •์˜ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์ž๋ฃŒํ˜•

โœ“ ๊ตฌ์กฐ์ฒด โ‡จ ์‚ฌ์šฉ์ž ์ •์˜ ์ž๋ฃŒํ˜•

• ๋‹ค์–‘ํ•œ ํ˜•์‹์˜ ์ž๋ฃŒ๋ฅผ ๊ฐ„๊ฒฐํ•œ ํ˜•์‹์œผ๋กœ ํ‘œํ˜„ ๊ฐ€๋Šฅ
• ์‚ฌ์šฉ์ž๊ฐ€ ์ƒˆ๋กœ์šด ํ˜•์‹์„ ์ •์˜ํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค

 

๐Ÿฌ ๊ตฌ์กฐ์ฒด์˜ ํ•„์š”์„ฑ


๐Ÿญ ๊ตฌ์กฐ์ฒด์˜ ์ •์˜์™€ ๋ณ€์ˆ˜ ์„ ์–ธ

 

๐Ÿฌ ๊ตฌ์กฐ์ฒด์˜ ์ •์˜

 

๐Ÿฌ ๊ตฌ์กฐ์ฒด ๋ณ€์ˆ˜์˜ ์„ ์–ธ

 

[ ๊ตฌ์กฐ์ฒด ์ •์˜์™€ ๋ณ€์ˆ˜ ์„ ์–ธ ์˜ˆ 1 ]

[์‹ค์ œ ์ž๋ฃŒ ํ˜•ํƒœ]

ํ•™๋ฒˆ : 2102
์ด๋ฆ„ : ํ™๊ธธ๋™
๊ตญ์–ด : 70
์˜์–ด : 85
์ˆ˜ํ•™ : 80
๊ตญ์‚ฌ : 90

โ–ผ

[๊ตฌ์กฐ์ฒด๋กœ ์ •์˜]

struct score {
	char no[4];
    char name[8];
    int kor;
    int eng;	// ๊ตฌ์กฐ์ฒด ๋ฉค๋ฒ„
    int math;
    int hist;
};

struct score X, Y;	// ๊ตฌ์กฐ์ฒด ๋ณ€์ˆ˜ X, Y ์„ ์–ธ

 

[ ๊ตฌ์กฐ์ฒด ์ •์˜์™€ ๋ณ€์ˆ˜ ์„ ์–ธ ์˜ˆ 2 ]

// ๊ตฌ์กฐ์ฒด ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์œ„์˜ ์˜ˆ 1๊ณผ ์ƒ์ดํ•จ

struct score{
	char no[4];
    char name[8];
    int kor;
    int eng;
    int math;
    int hist;
} X, Y;
// X, Y๋Š” struct score์˜ ๊ตฌ์กฐ์ฒด ๋ณ€์ˆ˜

 

[ ๊ตฌ์กฐ์ฒด ์ •์˜์™€ ๋ณ€์ˆ˜ ์„ ์–ธ ์˜ˆ 3 ]

โ• typedef ์‚ฌ์šฉ (์ƒˆ๋กœ์šด ์ž๋ฃŒํ˜•์œผ๋กœ ์ •์˜)

typedef struct score{
	char no[4];
    char name[8];
    int kor;
    int eng;
    int math;
    int hist;
} jumsu;	// ๊ตฌ์กฐ์ฒด score๋ฅผ jumsu๋ผ๋Š” ์ƒˆ ์ž๋ฃŒํ˜•์œผ๋กœ ์ •์˜

jumsu X, Y;	// ์ƒˆ ์ž๋ฃŒํ˜• jumsu์˜ ๋ณ€์ˆ˜ X, Y ์„ ์–ธ

 


๐Ÿญ ๊ตฌ์กฐ์ฒด ๋ณ€์ˆ˜์˜ ์ดˆ๊ธฐํ™” ๋ฐ ์ฐธ์กฐ

 

๐Ÿฌ ๊ตฌ์กฐ์ฒด ๋ณ€์ˆ˜์˜ ์ดˆ๊ธฐํ™”

struct person{
    char name[8];
    int age;
    char sex;
};

struct person X = {"ํ™๊ธธ๋™", 20, 'M'};
struct person{
    char name[8];
    int age;
    char sex;
} X = {"ํ™๊ธธ๋™", 20, 'M'};

 

๐Ÿฌ ๊ตฌ์กฐ์ฒด ๋ฉค๋ฒ„์˜ ์ฐธ์กฐ

 

[ ๊ตฌ์กฐ์ฒด ๋ฉค๋ฒ„์˜ ์ฐธ์กฐ ์˜ˆ 1 ]

#include <stdio.h>
#include <string.h>

struct person {
    char name[8];
    int age;	// personํ˜• ๊ตฌ์กฐ์ฒด ์„ ์–ธ
    char sex;
};

void main(){
    struct person X = {"ํ™๊ธธ๋™", 30, 'M'};	// ๊ตฌ์กฐ์ฒด ๋ณ€์ˆ˜ X ์„ ์–ธ๊ณผ ์ดˆ๊ธฐํ™”
    struct person Y;	// ๊ตฌ์กฐ์ฒด ๋ณ€์ˆ˜ Y ์„ ์–ธ
    
    // ๊ตฌ์กฐ์ฒด ๋ฉค๋ฒ„์— ๊ฐ’ ๋Œ€์ž…
    strcpy(Y.name, "์ž„๋‚˜๋‚˜");	// ๋ฌธ์ž์—ด ์ฒ˜๋ฆฌ ์‹œ ๋ฌธ์ž์—ด ๋ณต์‚ฌ ํ•จ์ˆ˜ strcpy() ์‚ฌ์šฉ
    Y.age = 28;		
    Y.sex = 'F';
}

 

๐Ÿฌ ๊ตฌ์กฐ์ฒด์˜ ๊ธฐ์–ต๊ณต๊ฐ„ ๊ตฌ์กฐ

 

[ ๊ตฌ์กฐ์ฒด ๋ฉค๋ฒ„์˜ ์ฐธ์กฐ ์˜ˆ 2 ]

 


๐Ÿญ ๊ตฌ์กฐ์ฒด ๋ฐฐ์—ด

๋™์ผํ•œ ๊ตฌ์กฐ๋ฅผ ๊ฐ–๋Š” ๊ตฌ์กฐ์ฒด ๋ณ€์ˆ˜๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ ์‚ฌ์šฉ๋  ๋•Œ
๊ทธ ๊ตฌ์กฐ์ฒด ๋ณ€์ˆ˜๋“ค์„ ๋Œ€ํ‘œํ•˜๋Š” ๋ฐฐ์—ด๋ช…์„ ์„ค์ •ํ•ด ์ผ๋ฐ˜ ๋ฐฐ์—ด์ฒ˜๋Ÿผ ์‚ฌ์šฉ

 

๐Ÿฌ ๊ตฌ์กฐ์ฒด ๋ฐฐ์—ด์˜ ์˜ˆ

โœ“ 3๋ช…์˜ ๊ฐœ์ธ ์‹ ์ƒ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๊ตฌ์กฐ์ฒด ๋ฐฐ์—ด ์„ ์–ธ

 

๐Ÿฌ ๊ตฌ์กฐ์ฒด ๋ฐฐ์—ด์˜ ๊ธฐ์–ต๊ณต๊ฐ„ ํ‘œํ˜„

์ผ๋ฐ˜ ๋ฐฐ์—ด ์ค‘ 2์ฐจ์› ๋ฐฐ์—ด๊ณผ ๊ฐ™์€ ๊ฐœ๋…์ด๋‹ค.

โ‰ซ array[3] ์—์„œ ์ˆซ์ž๋Š” ํ–‰์„ ๋‚˜ํƒ€๋ƒ„

 

๐Ÿฌ ๊ตฌ์กฐ์ฒด ๋ฐฐ์—ด์˜ ์ดˆ๊ธฐํ™”

// ์•ž์„œ ๊ตฌ์กฐ์ฒด ์ •์˜๊ฐ€ ๋˜์—ˆ๋‹ค๋Š” ๊ฐ€์ • ํ•˜์—

struct person X[3] =
    {{"ํ™๊ธธ๋™", 20, 'M'},
    {"ํ™ฉ์ง„์ด", 22, 'F'},
    {"์ž„๊บฝ์ •", 30, 'M'}}

โ‡ข 3 x 3 ์ด 9๊ฐœ์˜ 2์ฐจ์› ๋ฐฐ์—ด๋กœ ์ดˆ๊ธฐํ™”๊ฐ€ ๋œ๋‹ค

โ‡ข X[3] ์œผ๋กœ ์ •์˜๋ฅผ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— X[0], X[1], X[2]

 

๐Ÿฌ ๊ตฌ์กฐ์ฒด ๋ฐฐ์—ด์˜ ๋ฉค๋ฒ„ ์ฐธ์กฐ

 

[ ๊ตฌ์กฐ์ฒด ๋ฐฐ์—ด์˜ ์‚ฌ์šฉ ์˜ˆ ]

#include <stdio.h>

void main(){
    struct person {
        char *name;
        int age;
        char sex;
    };
		// [3] : 3๊ฐœ ํ–‰์˜ ์˜๋ฏธ
struct person X[3] = {{"ํ™๊ธธ๋™", 20, 'M'},
                        {"ํ™ฉ์ง„์ด", 22, 'F'},	// ๊ตฌ์กฐ์ฒด ๋ฐฐ์—ด ์ดˆ๊ธฐํ™”
                        {"์ž„๊บฝ์ •", 30, 'M'}};

    int i, sum = 0;	

    for (i = 0; i < 3; i++){
        printf("์ด๋ฆ„ : %s ๋‚˜์ด : %d ์„ฑ๋ณ„ : %c\n",
            X[i].name, X[i].age, X[i].sex);	// ๊ตฌ์กฐ์ฒด ๋ฐฐ์—ด์˜ ๋ฉค๋ฒ„๋ฅผ ์ฐธ์กฐ
        sum = sum + X[i].age;
    }

	printf("๋‚˜์ดํ•ฉ : %d", sum);
}

 


๐Ÿญ ๊ตฌ์กฐ์ฒด ํฌ์ธํ„ฐ

ํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด ๊ตฌ์กฐ์ฒด๋ฅผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๊ฒŒ ํ•จ

• ๊ตฌ์กฐ์ฒด๋ฅผ ๋ณด๋‹ค ์‰ฝ๊ฒŒ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋‹ค
• ๊ตฌ์กฐ์ฒด ๋ณ€์ˆ˜ ์„ ์–ธ ์‹œ *๋ฅผ ๋ถ™์—ฌ ํฌ์ธํ„ฐ๋กœ ์„ ์–ธ
• ๊ตฌ์กฐ์ฒด ํฌ์ธํ„ฐ๋Š” ํฌ์ธํ„ฐ์™€ ๋™์ผํ•˜๊ฒŒ ์ฃผ์†Œ๊ฐ’์„ ๊ฐ€์ง€๋ฉฐ, ์ž๋ฃŒ๊ฐ€ ์žˆ๋Š” ๊ณณ์„ ๊ฐ€๋ฆฌํ‚จ๋‹ค.

 

๐Ÿฌ ๊ตฌ์กฐ์ฒด ํฌ์ธํ„ฐ์˜ ์„ ์–ธ

 

[ ๊ตฌ์กฐ์ฒด ํฌ์ธํ„ฐ ์„ ์–ธ ์˜ˆ ]

struct person {
    char name[8];
    int age;
    char sex;
}
struct person man;
struct person *pt;
pt = &man;	// ์œ„ ์ •์˜๋œ ๊ตฌ์กฐ์ฒด ๋ณ€์ˆ˜ man์˜ ์‹œ์ž‘ ์ฃผ์†Œ

 

๐Ÿฌ ๊ตฌ์กฐ์ฒด ํฌ์ธํ„ฐ์˜ ๊ธฐ์–ต๊ณต๊ฐ„ ํ‘œํ˜„ ์˜ˆ

 

๐Ÿฌ ๊ตฌ์กฐ์ฒด ํฌ์ธํ„ฐ์˜ ๋ฉค๋ฒ„ ์ฐธ์กฐ

 

[ ๊ตฌ์กฐ์ฒด ํฌ์ธํ„ฐ์˜ ์‚ฌ์šฉ ์˜ˆ ]

#include <stdio.h>

struct student {
    char name[10];
    int kor;		student ๊ตฌ์กฐ์ฒด๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฉค๋ฒ„ 3๊ฐœ
    int math;
};

void main() {
                // 4ํ–‰(๊ตฌ์กฐ์ฒด ๊ฐœ์ˆ˜) 3์—ด(๋ฉค๋ฒ„)
    struct student hs[4] = {{"KIM HG", 90, 95}, {"LEE SY", 85, 90},
    			{"PARK GS", 70, 85}, {"CHOI HJ", 95, 75}};
    struct student *p;
    p = hs;	// ๊ตฌ์กฐ์ฒด ๋ฐฐ์—ด ๋ณ€์ˆ˜ hs์˜ ์‹œ์ž‘ ์ฃผ์†Œ p[0] ๊ฐ€๋ฆฌํ‚ด
		// P[0] : KIM HG 90, 95
    printf("%s %d %d\n", p -> name, p -> kor, p -> math);
    p += 3;	// p[3] : CHOI HJ 95 75
    printf("%s %d %d\n", p -> name, p -> kor, p -> math);
    p--;	// p[2]	: PARK GS 70 85
    printf("%s %d %d\n", p -> name, p -> kor, p -> math);
}

 

โ–ผ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ๊ณผ์ • (๊ธฐ์–ต๊ณต๊ฐ„ ํ‘œํ˜„)

 

๋Œ“๊ธ€
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
ยซ   2025/05   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
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
๊ธ€ ๋ณด๊ด€ํ•จ