1. Æ÷ÀÎÅÍÀÇ ¼±¾ð
2. Æ÷ÀÎÅÍ º¯¼öÀÇ ÃʱâÈ
µ¥ÀÌÅÍÇü *Æ÷ÀÎÅͺ¯¼ö=&¹øÁö
|
¿¹Á¦1
Æ÷ÀÎÅÍ º¯¼öÀÇ ¼±¾ð°ú ÃʱâÈ
|
#include <stdio.h>
int main(int argc, char* argv[])
{
int
a=100;
int
*b;
// Æ÷ÀÎÅÍ ¼±¾ð
printf("%d
%d\n",a,&a);
b
= &a;
// Æ÷ÀÎÅÍ º¯¼ö ÃʱâÈ-aÀÇ ¸Þ¸ð¸® ¹øÁö¸¦ Æ÷ÀÎÅÍ b¿¡ ÀúÀå
printf("%d
%d\n",*b,b);
return
0;
}
|
100 1245052
100 1245052
|
ÀÏ¹Ý º¯¼ö aÀÇ ¹øÁö¼ö¸¦ Æ÷ÀÎÅÍ b¿¡ ÀúÀåÇÑ´Ù. ±×¸®°í *b´Â ±× ¹øÁö¿¡ ÀúÀåµÈ °ªÀ» ³ªÅ¸³½´Ù.
º¯¼ö
|
a
|
&a
|
Æ÷ÀÎÅÍ
|
*b
|
b
|
°ª
|
100
|
1245052
|
3. 1Â÷¿ø ¹è¿°ú Æ÷ÀÎÅÍ
1Â÷¿ø ¹è¿ÀÇ Ãʱ⠹øÁö¸¦ Æ÷ÀÎÅÍ·Î ³Ñ±ä´Ù.
¿¹Á¦2
ÇÔ¼ö¿¡¼ 1Â÷¿ø ¹è¿À» Æ÷ÀÎÅÍ ¹Þ´Â´Ù.
|
#include "stdafx.h"
#include "iostream.h"
void Print(int *in);
int main(int argc, char* argv[])
{
int
a[3]={1,2,3},i;
int
*b;
b
= &a[0];
for(i=0;i<3;i++)
{
cout<<*b<<"
"<<b<<endl;
b++;
}
cout<<"============="<<endl;
Print(&a[0]); // Ãʱ⠹øÁö¸¦ ³Ñ±ä´Ù.
return
0;
}
void Print(int *in)
// Æ÷ÀÎÅÍ·Î ¹Þ´Â´Ù.
{
int
i;
for(i=0;i<3;i++)
cout<<*in++<<"
"<<in<<endl;
}
|
1 0x0012FF74
2 0x0012FF78
3 0x0012FF7C
=============
1 0x0012FF74
2 0x0012FF78
3 0x0012FF7C
|
À§¿¡¼ º¯¼ö a¿Í Æ÷ÀÎÅÍ inÀÇ ¹øÁö¼ö°¡ °°À½À» ¾Ë ¼ö ÀÖ´Ù.
4. 2Â÷¿ø ¹è¿°ú Æ÷ÀÎÅÍ
¿¹Á¦3
ÇÔ¼ö¿¡¼ 2Â÷¿ø ¹è¿À» Æ÷ÀÎÅÍ ¹Þ´Â´Ù.
|
#include "stdafx.h"
#include "iostream.h"
void Print(int *in);
int main(int argc, char* argv[])
{
int
i,c[3][3]={{1,2,3},{4,5,6},{7,8,9}};
int
*b;
b
= &c[0][0];
for(i=0;i<9;i++)
{
cout<<*b<<"
"<<b<<endl;
b++;
}
cout<<"============="<<endl;
Print(&c[0][0]);
return
0;
}
void Print(int *in)
{
int
i;
for(i=0;i<9;i++)
cout<<*in++<<"
"<<in<<endl;
}
|
1 0x0012FF58
2 0x0012FF5C
3 0x0012FF60
4 0x0012FF64
5 0x0012FF68
6 0x0012FF6C
7 0x0012FF70
8 0x0012FF74
9 0x0012FF78
=============
1 0x0012FF58
2 0x0012FF5C
3 0x0012FF60
4 0x0012FF64
5 0x0012FF68
6 0x0012FF6C
7 0x0012FF70
8 0x0012FF74
9 0x0012FF78
|
2Â÷¿ø ¹è¿µµ ÀÏÂ÷¿øÀ¸·Î ÀúÀå µÈ´Ù´Â °ÍÀº ¾Õ¿¡ ¼³¸íÇß´Ù. ±×·¯¹Ç·Î 2Â÷¿ø ÀÌ»óÀÇ ¹è¿Àº Ãʱ⠹øÁö¿Í Çà,¿ÀÇ °³¼ö¸¦ ÇÔ¼ö¿¡ Àü´ÞÇϸé Â÷·Ê·Î °ªÀ» ÀÐ¾î¼ ÂüÁ¶ÇÏ¸é µÈ´Ù. ´ÙÀ½Àº ¿Ï¼ºµÈ ÇÁ·Î±×·¥À¸·Î 2Â÷¿ø ÀÌ»óÀº ÀÌ¿Í °°ÀÌ ÇÁ·Î±×·¥À» ¸¸µé¸é µÈ´Ù.
¿¹Á¦4
ÇÔ¼ö¿¡¼ 2Â÷¿ø ¹è¿À» Æ÷ÀÎÅ͸¦ ÀÌ¿ëÇØ ¶Ç´Ù¸¥ ¹øÁöÀÇ ¹è¿·Î ¹Þ´Â´Ù.
|
#include "stdafx.h"
#include "iostream.h"
void Print(int *in, int r, int c);
int main(int argc, char* argv[])
{
int
i,j,a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
int
*b;
b
= &a[0][0];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
cout<<a[i][j]<<"
"<<&a[i][j]<<endl;
cout<<"============="<<endl;
Print(&a[0][0],3,3);
return
0;
}
void Print(int *in, int r, int c)
{
int
i,j,out[3][3];
for(i=0;i<r;i++)
for(j=0;j<3;j++)
{
out[i][j]=*in;
in++;
}
for(i=0;i<c;i++)
for(j=0;j<3;j++)
cout<<out[i][j]<<"
"<<&out[i][j]<<endl;
}
|
1 0x0012FF54
2 0x0012FF58
3 0x0012FF5C
4 0x0012FF60
5 0x0012FF64
6 0x0012FF68
7 0x0012FF6C
8 0x0012FF70
9 0x0012FF74
=============
1 0x0012FEC4
2 0x0012FEC8
3 0x0012FECC
4 0x0012FED0
5 0x0012FED4
6 0x0012FED8
7 0x0012FEDC
8 0x0012FEE0
9 0x0012FEE4
|
|