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

๐ŸŒ charํ˜• ํฌ์ธํ„ฐ


• ๋ฌธ์ž์—ด ์ฒ˜๋ฆฌ์— ํšจ๊ณผ์ 
• ๋ฌธ์ž์—ด ์ฒ˜๋ฆฌ์— charํ˜• ํฌ์ธํ„ฐ ์‚ฌ์šฉ

 

๐Ÿ’  charํ˜• ํฌ์ธํ„ฐ์˜ ๊ธฐ์–ต๊ณต๊ฐ„ ํ‘œํ˜„

char *cp = "COMPUTER";

โœ“ cp๋Š” ๋ฌธ์ž์—ด์˜ ์‹œ์ž‘ ์ฃผ์†Œ๋ฅผ ๊ฐ–์Œ

โœ“ ๋”ฐ๋ผ์„œ ๊ฐ’์„ ์ฐธ์กฐํ•  ๋•Œ์™€ ๋‹ฌ๋ฆฌ ํฌ์ธํ„ฐ ๋ณ€์ˆ˜ cp์— ์ฃผ์†Œ๋ฅผ ์น˜ํ™˜ํ•˜์ง€ ์•Š๋Š”๋‹ค
(cp๋Š” ์ด๋ฏธ ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Œ)

 

๐Ÿ’ char ํฌ์ธํ„ฐ์˜ ์‚ฌ์šฉ ์˜ˆ

#include <stdio.h>
void main()
{
	char *cp = "COMPUTER";
    // char ํ˜• ํฌ์ธํ„ฐ ๋ณ€์ˆ˜ cp์˜ ๊ฐ’ : "COMPUTER"๊ฐ€ ์ˆ˜๋ก๋œ ์‹œ์ž‘ ์ฃผ์†Œ
    int i = 0;
    do
    	printf("*(cp+%d) : %c\n", i, *(cp+i));
    while (*(cp + i++) != 0)
}

 


๐ŸŒ ํฌ์ธํ„ฐ์™€ ๋ฐฐ์—ด์˜ ๊ด€๊ณ„

 

๐Ÿ’ ํฌ์ธํ„ฐ๋ฅผ ์ด์šฉํ•œ 1์ฐจ์› ๋ฐฐ์—ด์˜ ์ฐธ์กฐ

char s[] = "SCIENCE";
char *cp;	// charํ˜• ํฌ์ธํ„ฐ ๋ณ€์ˆ˜ ์„ ์–ธ (ํ• ๋‹น์€ X)
cp = s; // ํฌ์ธํ„ฐ cp๋ฅผ ์ด์šฉํ•ด ๋ฐฐ์—ด s์˜ ๋‚ด์šฉ ์ฐธ์กฐ

• cp+1 ์€ ์ฃผ์†Œ๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ๋•Œ๋ฌธ์— &s[1] ์™€ ๋™์ผ
• *(cp+1) ์€ ๋‚ด์šฉ์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ๋•Œ๋ฌธ์— s[1] ์™€ ๋™์ผ

 

๐Ÿ’ ํฌ์ธํ„ฐ๋ฅผ ์ด์šฉํ•œ 1์ฐจ์› ๋ฐฐ์—ด์˜ ์ฐธ์กฐ ์˜ˆ

#include <stdio.h>
void main(){
	static int a[] = {10, 20, 30, 40, 50};
    int *pt, b, c, d;
    
    pt = a;	// ๋ฐฐ์—ด๋ช… = ์ฃผ์†Œ (a๋Š” a๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์„ ์–ธ๋œ ๊ธฐ์–ต ๊ณต๊ฐ„์˜ ์‹œ์ž‘ ์ฃผ์†Œ)
    b = *pt + *(pt+3);	// 10 + 40 = 50
    
    pt++;		// &a[1]
    c = *pt + *(pt+3);	// 20 + 50 = 70
    d = *pt + 3;	// 23
    
    printf("b = %d. c = %d, d = %d", b, c, d);
    // b = 50, c = 70, d = 23
}

 

๐Ÿ’ ํฌ์ธํ„ฐ๋ฅผ ์ด์šฉํ•œ 2์ฐจ์› ๋ฐฐ์—ด์˜ ์ฐธ์กฐ

int a[2][3];
int *pt;
pt = a;

โ‡จ a : ๋ฐฐ์—ด a[2][3]์˜ ์‹œ์ž‘ ์ฃผ์†Œ
โ‡จ a[0] : ์ฒซ ๋ฒˆ์งธ ํ–‰
โ‡จ a[1] : ๋‘ ๋ฒˆ์งธ ํ–‰

 

๐Ÿ’ ํฌ์ธํ„ฐ๋ฅผ ์ด์šฉํ•œ 2์ฐจ์› ๋ฐฐ์—ด์˜ ์ฐธ์กฐ ์˜ˆ

#include <stdio.h>
void main(){
	static a[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, -9}};
    int *pt;
    pt = a[0];	// ์ฒซ ๋ฒˆ์งธ ํ–‰์˜ ์‹œ์ž‘ ์ฃผ์†Œ
    
    while(*pt != -9) {
    	printf("%d", *pt);
        pt++;
    }
}

 

๐Ÿ’ ํฌ์ธํ„ฐ์™€ ๋ฐฐ์—ด์€ ์„œ๋กœ ํ˜ธํ™˜์ 

 

๐Ÿ’ ํฌ์ธํ„ฐ์™€ ๋ฐฐ์—ด์˜ ํ˜ธํ™˜ ์˜ˆ

#include <stdio.h>

void main(){

	char A[] = "ARRAY";
    char *p = "POINTER";
    int i;
    
    for(i = 0; i < 5; i++)
    	printf("*(A+%d) : %c\n", i, *(A+i));
    	// *(A+i) : ๋ฐฐ์—ด์„ ํฌ์ธํ„ฐ ํ˜•์‹์œผ๋กœ ์ฐธ์กฐ
        
    for(i = 0; i < 7; i++)
    	prinft("p[%d] : %c\n", i, p[i]);
        // p[i] : ํฌ์ธํ„ฐ๋ฅผ ๋ฐฐ์—ด ํ˜•์‹์œผ๋กœ ์ฐธ์กฐ
}

 

๐Ÿ’ ํฌ์ธํ„ฐ์™€ ๋ฐฐ์—ด์˜ ๊ฐ’ ๋ณ€๊ฒฝ

โ‡จ ์ฃผ์†Œ ๊ฐ’ ์ž์ฒด๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜๋Š” ์—†๋‹ค

 

๐Ÿ’ ํฌ์ธํ„ฐ์™€ ๋ฐฐ์—ด์˜ ๊ธฐ์–ต๊ณต๊ฐ„ ํ™•๋ณด

[ ๋ฐฐ์—ด ]

• ๊ธฐ์–ต๊ณต๊ฐ„ ์ค‘ ์ž๋ฃŒ์˜์—ญ์„ ๊ณ ์ •์ ์œผ๋กœ ํ™•๋ณด

[ ํฌ์ธํ„ฐ ]

• ๊ธฐ์–ต๊ณต๊ฐ„ ์ค‘ ์ž๋ฃŒ์˜์—ญ์„ ์œ ๋™์ ์œผ๋กœ ํ™•๋ณด
- ํ•„์š”ํ•  ๋•Œ๋งŒ ์ž๋ฃŒ์šฉ ๊ธฐ์–ต ๊ณต๊ฐ„ ํ™•๋ณด
- ์ž๋ฃŒ ๊ฐœ์ˆ˜๊ฐ€ ๊ฐ€๋ณ€์ ์ธ ๊ฒฝ์šฐ ํšจ๊ณผ์ 

โœ“ ํฌ์ธํ„ฐ๊ฐ€ ๋ฐฐ์—ด๋ณด๋‹ค ํ™œ์šฉ์˜ ํญ์ด ๋„“๋‹ค!

 


๐ŸŒ ํฌ์ธํ„ฐ ๋ฐฐ์—ด

 

๐Ÿ’  ํฌ์ธํ„ฐ ๋ฐฐ์—ด

ํฌ์ธํ„ฐ ๋ฐฐ์—ด โ‡จ ํฌ์ธํ„ฐ์˜ ์ง‘ํ•ฉ

 

๐Ÿ’  ํฌ์ธํ„ฐ ๋ฐฐ์—ด ์„ ์–ธ๊ณผ ๊ธฐ์–ต๊ณต๊ฐ„ ํ‘œํ˜„

char *PA[4];
PA[0] = "ELECTRONICS"; 
PA[1] = "DATA";
PA[2] = "PROCESSING";
PA[3] = "SYSTEM";

โ‡จ 2์ฐจ์› ๋ฐฐ์—ด์ธ ๊ฒฝ์šฐ ์ด 48๊ฐœ์˜ ๊ธฐ์–ต๊ณต๊ฐ„ ํ•„์š”, ํฌ์ธํ„ฐ ๋ฐฐ์—ด์ด๋ฉด ์ด 35๊ฐœ ๊ธฐ์–ต๊ณต๊ฐ„ ํ•„์š”

 

๐Ÿ’  ํฌ์ธํ„ฐ ๋ฐฐ์—ด ์‚ฌ์šฉ ์˜ˆ

#include <stdio.h>

void main(){
	int a[] = {1, 2, 3, 4};
    int b[] = {5, 6, 7, 8};
	
    int *PA[2];	// 2๊ฐœ์˜ ํฌ์ธํ„ฐ ๋ฐฐ์—ด ์„ ์–ธ
    PA[0] = a;	// a[0] ํฌ์ธํŒ…
    PA[1] = b;	// b[0] ํฌ์ธํŒ…
    
    printf(*(PA[0]) = %d\n", *(PA[0]));
    // 1
    printf(*(PA[0] + 1) = %d\n", *(PA[0] + 1));
    // 2
    printf("*PA[1] = %d\n, *PA[1]);
    // 5
    printf("*PA[1] + 15 = %d\n", *PA[1] + 15);
    // 20
}

 


๐ŸŒ ์ด์ค‘ ํฌ์ธํ„ฐ

 

๐Ÿ’  ์ด์ค‘ ํฌ์ธํ„ฐ์˜ ๊ฐœ๋…

 

๐Ÿ’  ์ด์ค‘ ํฌ์ธํ„ฐ์˜ ์„ ์–ธ

 

๐Ÿ’  ์ด์ค‘ ํฌ์ธํ„ฐ์˜ ์„ ์–ธ ์˜ˆ

int **p;


p : ๊ธฐ์–ต๊ณต๊ฐ„ ์ฃผ์†Œ
*p : ์ฃผ์†Œ p์— ์ˆ˜๋ก๋˜์–ด ์žˆ๋Š” ๊ฐ’. ์ด ๊ฐ’์ด ์ฃผ์†Œ๋กœ ์“ฐ์ž„
**p :  ์ฃผ์†Œ๊ฐ€ *p์ธ ๊ณณ์— ์ˆ˜๋ก๋˜์–ด ์žˆ๋Š” ๊ฐ’. ์ฆ‰ intํ˜• ์ž๋ฃŒ

 

๐Ÿ’  ์ด์ค‘ ํฌ์ธํ„ฐ์˜ ์‚ฌ์šฉ ์˜ˆ

#include <stdio.h>

void main(){

	char a = 'A', *p, **pp;	// ์ด์ค‘ ํฌ์ธํ„ฐ ๋ณ€์ˆ˜ **p ์„ ์–ธ
    
    p = &a;	// ํฌ์ธํ„ฐ ๋ณ€์ˆ˜์— ์ผ๋ฐ˜ ๋ณ€์ˆ˜ a์˜ ์ฃผ์†Œ ํ• ๋‹น
    pp = &p;	// ์ด์ค‘ ํฌ์ธํ„ฐ ๋ณ€์ˆ˜์— ํฌ์ธํ„ฐ ๋ณ€์ˆ˜ p์˜ ์ฃผ์†Œ ๊ฐ’ ํ• ๋‹น
    
    printf("**pp = %c", **pp);	// **pp = A
	
}

 

๋Œ“๊ธ€
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
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
๊ธ€ ๋ณด๊ด€ํ•จ