E D R , A S I H C RSS

날다람쥐 6월9일

포인터(Pointer)에 대서. class='perma' href='#s-2'>¶

포인터란? n class='line-anchor' id='line-8'>span>
/>

포인터란, 어 변수의 '주'를 조하 변수다. )lass='line-anchor' id='line-10'>an>
class="center" colspan='2'> 13 d> class="center" colspan='2'> 14 d>
주소 </td>lass="center" colspan='2'> 변수 </td>lass="center" colspan='2'> 내용 </td>
1000 d>ss="center" colspan='2'> a
1004 d>ss="center" colspan='2'> b


int a = 13; int b = 14; 이라는 언을 해 가능하며, 메모 상의 어떤 소에 있는 13 이라 데이는 a는 변의 이름을 해서 타내진다.

여기서 주소 1000 후에 1004 인 유는 int가 4byte이기 때문다.(여기서 소는 를 든 것임)

a = 14; 는 명령어를 통해 a의 내을 14 바꿀 수 있. class='line-anchor' id='line-20'>pan>
> 그리고 printf("%d", a); 라는 령어 통해 바뀐 을 확할 수 있다.<span class='line-anchor' id='line-21'>

a라는 은 a는 변가 나타내는 주소(1000)의 용을 나타내주는 이다.
a의 주를 표현하는 방법는 '&amp;'을 이는 법이 있다. <span class='line-anchor' id='line-23'>
printf("%u", &a); 결과값은 1000이다.(%u 맞? ㅋㅋ 찾아길. 맞을꺼야 %u는 소값 표현는 표현식.)<span class='line-anchor' id='line-24'>

포인터는 *라 문자를 통서 표하는,class='line-anchor' id='line-26'>pan>
>

만약에 INT형 주소 나타내는 수 IP 선언고 싶으면 int* ip; 고 표하면 된다.pan class='line-anchor' id='line-28'><br />
int *ip; 도 가한 표이다.(이게 간 더 옳은 현.) <span class='line-anchor' id='line-30'>

예를 어 int *ip, i; 렇게 하면 의 i는 일반인 int, 앞 ip는 인터 INT형으로 선이 된.class='line-anchor' id='line-32'>pan>
>

포인터가 가키는 의 값을 쓸 는 앞에 *을 붙인다. 예) int a = 13; int* ap = &a; printf("%d %d", a, *ap); class='line-anchor' id='line-34'>span>
/>

결과값 : 13 13

하지만 포인를 왜'쓰는지 잘 모는 경우가 다.-_-;

함수 에서 을 아무리 꿔봤 지역수 의 내용 바뀌 않는다. 이을 어디서나 쓸 수 있게 기 위서. pan class='line-anchor' id='line-40'><br /> 예) class='line-anchor' id='line-41'>span>
/>

void add(int a, int b, int* cp) { pan class='line-anchor' id='line-43'><br />
*cp = a + b; // cp라는 인터 가리는 주소의 을 a + b로 바준다(main 함 안의 c). n class='line-anchor' id='line-45'></span> />

} lass='line-anchor' id='line-47'>an>

int main() { class='line-anchor' id='line-49'>span>
/>


int a = 13, b = 14, c; n class='line-anchor' id='line-52'></span> />

add(a, b, &c); // a와 b의 값을, c의 주를 넣는다. <span class='line-anchor' id='line-55'>


printf("%d", c); // 결과 : 27pan class='line-anchor' id='line-58'><br />


} lass='line-anchor' id='line-61'>an>


배열과 포인 s='perma' href='#s-3'>¶;>
"sc-3">
배열은 여러의 변가 모인 형이다.
r> r> r> r> r>
10003
10044
10082
10121
10168

은 int a5an> = {3, 4, 2, 1, 8};을 언한 형태이다. class='line-anchor' id='line-72'>span>
/>
여기서 주목 점은 우리가 출력an class='line-anchor' id='line-73'>
printf("%d", aref='/wiki.php/0' >0);<span class='line-anchor' id='line-74'>

와 같 배열 번지수를 어주야 한는건lass='line-anchor' id='line-75'>an>
왜 printf("%d", a); 와 이 적면 안되는지 알아자. an class='line-anchor' id='line-76'>
a == &;a='/wiki.php/0' >0</a>class='line-anchor' id='line-77'>pan>
>
이라는 것을 우도 하고 ass='line-anchor' id='line-78'>n>
int* ap = a; class='line-anchor' id='line-79'>span>
/>

과제 class='perma' href='#s-4'>>

v id="sc-4">
(맨 밑 고치기 버을 누면 수정할 있고, 자기 름 밑에 내 쓰기. 위의 용은 바꿔도 되지 책임짐 ㅋㅋ) n class='line-anchor' id='line-87'></span> />

포인터를 이한 간한 프로그램 ='perma' href='#s-5'>¶

이름과 반을 3개 입받고 인터 이용해서 edit라는 함수 에서 2번째 력받 사람 수정한 후 시 출력하기. 예) 정석 1 ass='line-anchor' id='line-89'>n>
이지은 3 class='line-anchor' id='line-90'>pan>
> 김윤석 5 class='line-anchor' id='line-91'>pan>
> - 2번째 사람 수정 주세요 - an class='line-anchor' id='line-92'>

장다예 4 class='line-anchor' id='line-93'>pan>
> - 결과 - lass='line-anchor' id='line-94'>an>
유정석 1 class='line-anchor' id='line-95'>pan>
> 장다예 4 class='line-anchor' id='line-96'>pan>
> 김윤석 5 class='line-anchor' id='line-97'>pan>
>

배열의 이동 포인로?! <a class='perma' href='#s-6'a>

iv id="sc-6">
바로 의 배을 모두 출하는, printf("%d", *(ap + @)) 형태로 출해보. 여기서 모 값들 출력하려면 @에 각각 어 수가 들어가는지 접 해고 왜 그런 설명기. pan class='line-anchor' id='line-100'>




김윤석 ='perma' href='#s-8'>¶

배열의 이동 포인로 : <span class='line-anchor' id='line-108'>>

#include <stdio.h>class='line-anchor' id='line-110'>span>
/>




포인터를 이한 간한 프로그램 : class='line-anchor' id='line-131'>span>
/>


#include <stdio.h>class='line-anchor' id='line-134'>span>
/>

void edit(char *pan>ass='nonexistent' rel='nofollow' href='/wiki.php/NameC'>NameC, int *pan>ass='nonexistent' rel='nofollow' href='/wiki.php/NumC'>NumC)ass='line-anchor' id='line-136'>an>
{ass='line-anchor' id='line-137'>an>
printf("\n두번 입력 이름과 숫를 바니다. : ");an class='line-anchor' id='line-138'><br />
scanf("%s %d", an>ss='nonexistent' rel='nofollow' href='/wiki.php/NameC'>NameC, class='nonexistent' rel='nofollow' href='/wiki.php/NumC'>NumC>);// 포인터이므로 '&amp;' 를 붙이 않는.class='line-anchor' id='line-140'>span>
/>
}ass='line-anchor' id='line-141'>an>

int main()ass='line-anchor' id='line-143'>an>
{ass='line-anchor' id='line-144'>an>
char Name1 class='nonexistent' rel='nofollow' href='/wiki.php/10'>10</span>, Name2>='nonexistent' rel='nofollow' href='/wiki.php/10'>1>0, Name3pan>ass='nonexistent' rel='nofollow' href='/wiki.php/10'>10;//이름<span class='line-anchor' id='line-145'>>

char *an>ss='nonexistent' rel='nofollow' href='/wiki.php/NameC'>NameC;//변환 이름

int Num1, Num2, Num3;//숫lass='line-anchor' id='line-149'>pan>
>
int *n>s='nonexistent' rel='nofollow' href='/wiki.php/NumC'>NumC>;//변될 숫lass='line-anchor' id='line-151'>pan>
> printf("번째 사람의 이름 숫자 입력해주세요 : ");

scanf("%s %d", Name1, &Num1);lass='line-anchor' id='line-155'>pan>
>
printf("\n두번 사람 이름과 숫를 입해주요 : ");lass='line-anchor' id='line-157'>pan>
>
scanf("%s %d", Name2, &Num2);lass='line-anchor' id='line-159'>pan>
>
printf("\n세번 사람 이름과 숫를 입해주요 : ");lass='line-anchor' id='line-161'>pan>
>
scanf("%s %d", Name3, &Num3);lass='line-anchor' id='line-163'>pan>
>
NameC = Name2;//배열 일종의 포터이로 Name2 앞에 '&' 붙이지 않다.n class='line-anchor' id='line-165'>


NumC</span> = &Num2;//Num2는 인터 아니로 '&amp;' 을 앞에 여야 다.an class='line-anchor' id='line-167'><br />
edit(n>s='nonexistent' rel='nofollow' href='/wiki.php/NameC'>NameC
, <a class='nonexistent' rel='nofollow' href='/wiki.php/NumC'>N>umC
n>);// pan>ass='nonexistent' rel='nofollow' href='/wiki.php/NameC'>NameC
n>s='nonexistent' rel='nofollow' href='/wiki.php/NumC'>NumC>, 즉 소를 edit함수로 전.lass='line-anchor' id='line-169'>pan>
>
printf("\n바뀐 과 : %s %d %s %d %s %d\n", Name1, Num1, Name2, Num2, Name3, Num3);ass='line-anchor' id='line-171'>
an>

return 0;
}ass='line-anchor' id='line-174'>an>

장다예 ='perma' href='#s-10'>¶;>
"sc-10">

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:28:53
Processing time 0.0285 sec